// Decompiled by Jad v1.5.7d. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: LongMsgCut.java
package com.connsis.smgp.assistant;
// Referenced classes of package SmgwClient:
// ShortMsg, GlobalVar
public class LongMsgCut {
public LongMsgCut(int MsgLen, byte MsgContent[]) {
NewMsg = new ShortMsg[100];
Count = 0;
OldMsgLen = MsgLen;
OldMsgContent = MsgContent;
}
public int GetNewMsgCount() {
return Count;
}
public byte[] GetNewMsgContent(int index) {
if (index < 0 || index >= Count)
return null;
else
return NewMsg[index].GetMsgContent();
}
public int GetNewMsgLen(int index) {
if (index < 0 || index >= Count)
return -1;
else
return NewMsg[index].GetMsgLen();
}
public int GetNewMsgFormat(int index) {
if (index < 0 || index >= Count)
return -1;
else
return NewMsg[index].GetMsgFormat();
}
public int CutWithPageIndex() {
int index = 0;
if (OldMsgLen != OldMsgContent.length)
return -1;
byte WithPrevPage[] = "(continue)".getBytes();
byte WithNextPage[] = "(next)".getBytes();
int nPrevLen = WithPrevPage.length;
int nNextLen = WithNextPage.length;
if (nPrevLen + nNextLen > 252)
return -1;
do {
Count++;
if (Count > 99) {
Count--;
break;
}
if (Count == 1) {
if (OldMsgLen <= 252) {
NewMsg[0] = new ShortMsg();
NewMsg[0].SetMsgContent(OldMsgContent);
index += OldMsgLen;
NewMsg[0].SetMsgLen(OldMsgLen);
NewMsg[0]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
break;
}
if (OldMsgLen > 252) {
byte Content[] = new byte[252];
for (int i = 0; i < 252 - nNextLen - 7; i++) {
Content[7 + i] = OldMsgContent[index];
index++;
}
if (GetNonAsciiCount(Content) % 2 != 0) {
index--;
NewMsg[Count - 1] = new ShortMsg();
for (int i = 0; i < nNextLen; i++)
Content[(252 - nNextLen - 1) + i] = WithNextPage[i];
byte ContentCopy[] = new byte[252 - 1];
for (int i = 0; i < 252 - 1; i++)
ContentCopy[i] = Content[i];
NewMsg[Count - 1].SetMsgContent(ContentCopy);
NewMsg[Count - 1].SetMsgLen(252 - 1);
NewMsg[Count - 1]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
} else {
NewMsg[Count - 1] = new ShortMsg();
for (int i = 0; i < nNextLen; i++)
Content[(252 - nNextLen) + i] = WithNextPage[i];
NewMsg[Count - 1].SetMsgContent(Content);
NewMsg[Count - 1].SetMsgLen(252);
NewMsg[Count - 1]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
}
}
continue;
}
if ((OldMsgContent.length - index) + nPrevLen + 7 <= 252) {
byte Content[] = new byte[(OldMsgContent.length - index)
+ nPrevLen + 7];
for (int i = 0; i < nPrevLen; i++)
Content[7 + i] = WithPrevPage[i];
int CurrentIndex = index;
for (int i = 0; i < OldMsgContent.length - CurrentIndex; i++) {
Content[7 + nPrevLen + i] = OldMsgContent[index];
index++;
}
NewMsg[Count - 1] = new ShortMsg();
NewMsg[Count - 1].SetMsgContent(Content);
NewMsg[Count - 1].SetMsgLen(Content.length);
NewMsg[Count - 1].SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
break;
}
if ((OldMsgContent.length - index) + nPrevLen + 7 > 252) {
byte Content[] = new byte[252];
for (int i = 0; i < nPrevLen; i++)
Content[7 + i] = WithPrevPage[i];
for (int i = 0; i < 252 - nPrevLen - nNextLen - 7; i++) {
Content[7 + nPrevLen + i] = OldMsgContent[index];
index++;
}
if (GetNonAsciiCount(Content) % 2 != 0) {
index--;
NewMsg[Count - 1] = new ShortMsg();
for (int i = 0; i < nNextLen; i++)
Content[(252 - nNextLen - 1) + i] = WithNextPage[i];
byte ContentCopy[] = new byte[252 - 1];
for (int i = 0; i < 252 - 1; i++)
ContentCopy[i] = Content[i];
NewMsg[Count - 1].SetMsgContent(ContentCopy);
NewMsg[Count - 1].SetMsgLen(252 - 1);
NewMsg[Count - 1]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
} else {
NewMsg[Count - 1] = new ShortMsg();
for (int i = 0; i < nNextLen; i++)
Content[(252 - nNextLen) + i] = WithNextPage[i];
NewMsg[Count - 1].SetMsgContent(Content);
NewMsg[Count - 1].SetMsgLen(252);
NewMsg[Count - 1]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
}
}
} while (true);
AddPageIndex();
return 0;
}
public int CutWithoutPageIndex() {
int index = 0;
if (OldMsgLen != OldMsgContent.length)
return -1;
byte WithPrevPage[] = "(continue)".getBytes();
byte WithNextPage[] = "(next)".getBytes();
int nPrevLen = WithPrevPage.length;
int nNextLen = WithNextPage.length;
byte Content[];
label1: do
do {
Count++;
if (Count >= 100) {
Count--;
return 0;
}
if (Count == 1) {
if (OldMsgLen <= 252) {
NewMsg[Count - 1] = new ShortMsg();
NewMsg[Count - 1].SetMsgContent(OldMsgContent);
index += OldMsgLen;
NewMsg[Count - 1].SetMsgLen(OldMsgLen);
NewMsg[Count - 1]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
return 0;
}
if (OldMsgLen > 252) {
Content = new byte[252];
for (int i = 0; i < 252 - nNextLen; i++) {
Content[i] = OldMsgContent[index];
index++;
}
if (GetNonAsciiCount(Content) % 2 != 0) {
index--;
NewMsg[Count - 1] = new ShortMsg();
for (int i = 0; i < nNextLen; i++)
Content[(252 - nNextLen - 1) + i] = WithNextPage[i];
byte ContentCopy[] = new byte[252 - 1];
for (int i = 0; i < 252 - 1; i++)
ContentCopy[i] = Content[i];
NewMsg[Count - 1].SetMsgContent(ContentCopy);
NewMsg[Count - 1].SetMsgLen(252 - 1);
NewMsg[Count - 1]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
} else {
NewMsg[Count - 1] = new ShortMsg();
for (int i = 0; i < nNextLen; i++)
Content[(252 - nNextLen) + i] = WithNextPage[i];
NewMsg[Count - 1].SetMsgContent(Content);
NewMsg[Count - 1].SetMsgLen(252);
NewMsg[Count - 1]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
}
}
} else {
if ((OldMsgContent.length - index) + nPrevLen <= 252)
continue label1;
Content = new byte[252];
for (int i = 0; i < nPrevLen; i++)
Content[i] = WithPrevPage[i];
for (int i = 0; i < 252 - nPrevLen - nNextLen; i++) {
Content[nPrevLen + i] = OldMsgContent[index];
index++;
}
if (GetNonAsciiCount(Content) % 2 != 0) {
index--;
NewMsg[Count - 1] = new ShortMsg();
for (int i = 0; i < nNextLen; i++)
Content[(252 - nNextLen - 1) + i] = WithNextPage[i];
byte ContentCopy[] = new byte[252 - 1];
for (int i = 0; i < 252 - 1; i++)
ContentCopy[i] = Content[i];
NewMsg[Count - 1].SetMsgContent(ContentCopy);
NewMsg[Count - 1].SetMsgLen(252 - 1);
NewMsg[Count - 1]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
} else {
NewMsg[Count - 1] = new ShortMsg();
for (int i = 0; i < nNextLen; i++)
Content[(252 - nNextLen) + i] = WithNextPage[i];
NewMsg[Count - 1].SetMsgContent(Content);
NewMsg[Count - 1].SetMsgLen(252);
NewMsg[Count - 1]
.SetMsgFormat(ScanContent(NewMsg[Count - 1]
.GetMsgContent()));
}
}
} while (true); w
没有合适的资源?快使用搜索试试~ 我知道了~
ShortMessageGateway
共20个文件
java:19个
txt:1个
3星 · 超过75%的资源 需积分: 0 22 下载量 5 浏览量
2009-01-12
11:49:45
上传
评论
收藏 17KB ZIP 举报
温馨提示
按照中国电信SMGP(短信网关协议)编写的.短信网管通信程序. 提供,连接,登录,发送短信,接受短信等功能.-searched with China Telecom (SMS Gateway Protocol) prepared. SMS Management Communication Program. Provided, connectivity, log, send messages, receive messages and other functions.
资源详情
资源评论
资源推荐
收起资源包目录
ShortMessageGateway.zip (20个子文件)
src
com
connsis
smgp
datapack
DeliverRespPack.java 608B
LoginRespPack.java 362B
DataPackHead.java 1KB
DeliverPack.java 1004B
AbstractDataPack.java 147B
LoginPack.java 2KB
SubmitPack.java 3KB
ArrayTool.java 196B
MD5.java 6KB
SubmitRespPack.java 366B
ShortMessage.java 1KB
assistant
SMGP_submit.java 3KB
LongMsgCut.java 10KB
MsgID.java 504B
SMGP_head.java 455B
SmgpMsgID.java 1KB
ShortMsg.java 845B
SubmitInterface.java 2KB
SMGPClient.java 9KB
www.pudn.com.txt 218B
共 20 条
- 1
juicewall
- 粉丝: 21
- 资源: 228
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1