📄 slidewindow.java
字号:
BindResp resp = (BindResp)tmp;
resp.readbody();
long s1 = tmp.getSeqno_1();
int s2 = tmp.getSeqno_2();
int s3 = tmp.getSeqno_3();
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(resp.GetResult());
if(packetArea != null)
{
packetArea.append(CTime.getStringDate() + "--SGIP12--BindResp: (SMG->SP)\n");
packetArea.append("TotalLength: " + tmp.getTotalLength() + "\n");
packetArea.append("CommandID: " + tmp.getCommandID() + "\n");
packetArea.append("SequenceID_1: " + s1 + "\n");
packetArea.append("SequenceID_2: " + s2 + "\n");
packetArea.append("SequenceID_3: " + s3 + "\n");
packetArea.append("Result: " + resp.GetResult() + "\n\n");
}
int bindResult = resp.GetResult();
if(bindResult == 0);
deSlideWindow(s1, s2, s3);
switch(bindResult)
{
case 1: // '\001'
SGIPLog.WriteLog(-2, "Bind包:非法登录,如登录名、口令出错、登录名与口令不符等", logFile);
break;
case 2: // '\002'
SGIPLog.WriteLog(-2, "Bind包:重复登录,如在同一TCP/IP连接中连续两次以上请求登录", logFile);
break;
case 3: // '\003'
SGIPLog.WriteLog(-2, "Bind包:连接过多,指单个节点要求同时建立的连接数过多", logFile);
break;
case 4: // '\004'
SGIPLog.WriteLog(-2, "Bind包:登录类型错,指bind命令中的logintype字段出错", logFile);
break;
case 5: // '\005'
SGIPLog.WriteLog(-2, "Bind包:参数格式错,指命令中参数值与参数类型不符或与协议规定的范围不符", logFile);
break;
case 9: // '\t'
SGIPLog.WriteLog(-2, "Submit包:非法序列号,包括序列号重复、序列号格式错误等", logFile);
break;
case 6: // '\006'
case 7: // '\007'
case 8: // '\b'
default:
SGIPLog.WriteLog(-3, "Bind包:未知错误!", logFile);
break;
case 0: // '\0'
break;
}
}
break;
case 2: // '\002'
System.out.println("--Unbind--");
Unbind term = slideWindowData.getPacket().unbindPacket;
int err = term.write(out);
if(packetArea != null)
{
packetArea.append(CTime.getStringDate() + "--SGIP12--Unbind: (SP->SMG)\n");
packetArea.append("TotalLength: " + term.getTotalLength() + "\n");
packetArea.append("CommandID: " + term.getCommandID() + "\n");
packetArea.append("SequenceID_1: " + term.getSeqno_1() + "\n");
packetArea.append("SequenceID_2: " + term.getSeqno_2() + "\n");
packetArea.append("SequenceID_3: " + term.getSeqno_3() + "\n\n");
}
if(err == 0)
{
slideWindowData.increSendCountsByOne();
slideWindowData.getPacket().sequence_1 = term.getSeqno_1();
slideWindowData.getPacket().sequence_2 = term.getSeqno_2();
slideWindowData.getPacket().sequence_3 = term.getSeqno_3();
haveSendPosBegin = ((haveSendPosBegin + size) - 1) % size;
notSendPosEnd = haveSendPosBegin;
} else
{
SGIPLog.WriteLog(-2, err + " 发送Unbind出错", logFile);
System.out.println("err: " + err + " 发送Unbind出错");
throw new Exception("err: " + err + " 发送Unbind出错");
}
SGIP_Command tmp = sgip.read(input);
if(sgip.getCommandID() != 0x80000002)
break;
UnbindResp Unresp = (UnbindResp)tmp;
System.out.println(tmp.getSeqno_1());
System.out.println(tmp.getSeqno_2());
System.out.println(tmp.getSeqno_3());
if(packetArea != null)
{
packetArea.append(CTime.getStringDate() + "--SGIP12--UnbindResp: (SMG->SP)\n");
packetArea.append("TotalLength: " + tmp.getTotalLength() + "\n");
packetArea.append("CommandID: " + tmp.getCommandID() + "\n");
packetArea.append("SequenceID_1: " + tmp.getSeqno_1() + "\n");
packetArea.append("SequenceID_2: " + tmp.getSeqno_2() + "\n");
packetArea.append("SequenceID_3: " + tmp.getSeqno_3() + "\n\n");
}
deSlideWindow(tmp.getSeqno_1(), tmp.getSeqno_2(), tmp.getSeqno_3());
out.close();
break;
case 3: // '\003'
System.out.println("--Submit--");
SGIPPacket subPacket = slideWindowData.getPacket();
Submit submit = subPacket.submitPacket;
int err = submit.write(out);
if(packetArea != null)
{
packetArea.append(CTime.getStringDate() + "--SGIP12--Submit: (SP->SMG)\n");
packetArea.append("TotalLenth: " + submit.getTotalLength() + "\n");
packetArea.append("CommandID: " + submit.getCommandID() + "\n");
packetArea.append("SequenceID_1: " + submit.getSeqno_1() + "\n");
packetArea.append("SequenceID_2: " + submit.getSeqno_2() + "\n");
packetArea.append("SequenceID_3: " + submit.getSeqno_3() + "\n");
packetArea.append("SPNumber: " + submit.getSPNumber() + "\n");
packetArea.append("ChargeNumber: " + submit.getChargeNumber() + "\n");
packetArea.append("UserCount: " + submit.getUserCount() + "\n");
for(int i = 0; i < submit.getUserCount(); i++)
packetArea.append("UserNumber: " + submit.getUserNumber()[i] + "\n");
packetArea.append("CorpId: " + submit.getCorpId() + "\n");
packetArea.append("ServiceType: " + submit.getServiceType() + "\n");
packetArea.append("FeeType: " + submit.getFeeType() + "\n");
packetArea.append("FeeValue: " + submit.getFeeValue() + "\n");
packetArea.append("GivenValue: " + submit.getGivenValue() + "\n");
packetArea.append("AgentFlag: " + submit.getAgentFlag() + "\n");
packetArea.append("MorelatetoMTFlag: " + submit.getMOrelatetoMTFlag() + "\n");
packetArea.append("Priority: " + submit.getPriority() + "\n");
packetArea.append("ExpireTime: " + submit.getExpireTime() + "\n");
packetArea.append("ScheduleTime: " + submit.getScheduleTime() + "\n");
packetArea.append("ReportFlag: " + submit.getReportFlag() + "\n");
packetArea.append("MessageType: " + submit.getMessageType() + "\n");
packetArea.append("TP_pid: " + submit.getTP_pid() + "\n");
packetArea.append("TP_udhi: " + submit.getTP_udhi() + "\n");
packetArea.append("MessageCoding: " + submit.getMessageCoding() + "\n");
packetArea.append("MessageLength: " + submit.getMessageLength() + "\n");
packetArea.append("MessageContent: " + submit.getMessageContent() + "\n\n");
}
if(err == 0)
{
slideWindowData.increSendCountsByOne();
slideWindowData.getPacket().sequence_1 = submit.getSeqno_1();
slideWindowData.getPacket().sequence_2 = submit.getSeqno_2();
slideWindowData.getPacket().sequence_3 = submit.getSeqno_3();
haveSendPosBegin = ((haveSendPosBegin + size) - 1) % size;
notSendPosEnd = haveSendPosBegin;
} else
{
SGIPLog.WriteLog(-2, err + " 发送Submit出错", logFile);
System.out.println("err: " + err + " 发送Submit出错");
throw new Exception("err: " + err + " 发送Submit出错");
}
SGIP_Command tmp = sgip.read(input);
if(tmp.getCommandID() != 0x80000003)
break;
SubmitResp submitresp = (SubmitResp)tmp;
submitresp.readbody();
System.out.println(tmp.getSeqno_1());
System.out.println(tmp.getSeqno_2());
System.out.println(tmp.getSeqno_3());
System.out.println(submitresp.getResult());
if(packetArea != null)
{
packetArea.append(CTime.getStringDate() + "--SGIP12--SubmitResp: (SMG->SP)\n");
packetArea.append("TotalLenth: " + tmp.getTotalLength() + "\n");
packetArea.append("CommandID: " + tmp.getCommandID() + "\n");
packetArea.append("SequenceID_1: " + tmp.getSeqno_1() + "\n");
packetArea.append("SequenceID_2: " + tmp.getSeqno_2() + "\n");
packetArea.append("SequenceID_3: " + tmp.getSeqno_3() + "\n");
packetArea.append("Result: " + submitresp.getResult() + "\n\n");
}
int submitRst = submitresp.getResult();
if(subPacket.localId == -1L)
{
SGIPLog.WriteLog(-2, "SubmitResult包:错误的local ID", logFile);
throw new Exception("SubmitResult包:错误的local ID");
}
SGIPPacket pkt = new SGIPPacket();
pkt.CommandId = 100;
pkt.localId = subPacket.localId;
pkt.submitResult = new SubmitResult();
pkt.submitResult.localId = subPacket.localId;
switch(submitRst)
{
case 0: // '\0'
deSlideWindow(tmp.getSeqno_1(), tmp.getSeqno_2(), tmp.getSeqno_3());
pkt.submitResult.result = 4;
break;
case 5: // '\005'
SGIPLog.WriteLog(-2, "Submit包:参数格式错,指命令中参数值与参数类型不符或与协议规定的范围不符", logFile);
pkt.submitResult.result = 3;
break;
case 6: // '\006'
SGIPLog.WriteLog(-2, "Submit包:非法手机号码,协议中所有手机号码字段出现非86130号码或手机号码前未加“86”时都应报错", logFile);
pkt.submitResult.result = 3;
break;
case 7: // '\007'
SGIPLog.WriteLog(-2, "Submit包:消息ID错", logFile);
pkt.submitResult.result = 3;
break;
case 8: // '\b'
SGIPLog.WriteLog(-2, "Submit包:信息长度错", logFile);
pkt.submitResult.result = 3;
break;
case 9: // '\t'
SGIPLog.WriteLog(-2, "Submit包:非法序列号,包括序列号重复、序列号格式错误等", logFile);
pkt.submitResult.result = 3;
break;
case 1: // '\001'
case 2: // '\002'
case 3: // '\003'
case 4: // '\004'
default:
SGIPLog.WriteLog(-3, "Bind包:未知错误!", logFile);
pkt.submitResult.result = 2;
break;
}
recvQueue.EnQueue(pkt);
break;
case 4096:
System.out.println("--Trace--");
SGIPPacket trPacket = slideWindowData.getPacket();
Trace tr = trPacket.tracePacket;
int err = tr.write(out);
if(packetArea != null)
{
packetArea.append(CTime.getStringDate() + "--SGIP12--Trace: (SP->SMG)\n");
packetArea.append("TotalLength: " + tr.getTotalLength() + "\n");
packetArea.append("CommandID: " + tr.getCommandID() + "\n");
packetArea.append("SequenceID_1: " + tr.getSeqno_1() + "\n");
packetArea.append("SequenceID_2: " + tr.getSeqno_2() + "\n");
packetArea.append("SequenceID_3: " + tr.getSeqno_3() + "\n");
packetArea.append("UserNumber: " + tr.getUserNumber() + "\n\n");
}
if(err == 0)
{
slideWindowData.increSendCountsByOne();
slideWindowData.getPacket().sequence_1 = tr.getSeqno_1();
slideWindowData.getPacket().sequence_2 = tr.getSeqno_2();
slideWindowData.getPacket().sequence_3 = tr.getSeqno_3();
haveSendPosBegin = ((haveSendPosBegin + size) - 1) % size;
notSendPosEnd = haveSendPosBegin;
} else
{
SGIPLog.WriteLog(-2, err + " 发送Trace出错", logFile);
System.out.println("err: " + err + " 发送Trace出错");
throw new Exception("err: " + err + " 发送Trace出错");
}
SGIP_Command tmp = sgip.read(input);
if(sgip.getCommandID() != 0x80001000)
break;
TraceResp trResp = (TraceResp)tmp;
trResp.readbody();
SGIPPacket pkt = new SGIPPacket();
pkt.CommandId = trResp.getCommandID();
pkt.traceRespPacket = trResp;
recvQueue.EnQueue(pkt);
System.out.println(tmp.getSeqno_1());
System.out.println(tmp.getSeqno_2());
System.out.println(tmp.getSeqno_3());
System.out.println(trResp.getCount());
System.out.println(trResp.getResult());
System.out.println(trResp.getNodeId());
System.out.println(trResp.getReceiveTime());
System.out.println(trResp.getSendTime());
if(packetArea != null)
{
packetArea.append(CTime.getStringDate() + "--SGIP12--TraceResp: (SMG->SP)\n");
packetArea.append("TotalLength: " + tmp.getTotalLength() + "\n");
packetArea.append("CommandID: " + tmp.getCommandID() + "\n");
packetArea.append("SequenceID_1: " + tmp.getSeqno_1() + "\n");
packetArea.append("SequenceID_2: " + tmp.getSeqno_2() + "\n");
packetArea.append("SequenceID_3: " + tmp.getSeqno_3() + "\n");
packetArea.append("Count: " + trResp.getCount() + "\n");
packetArea.append("Result: " + trResp.getResult() + "\n");
packetArea.append("NodeId: " + trResp.getNodeId() + "\n");
packetArea.append("ReceiveTime: " + trResp.getReceiveTime() + "\n");
packetArea.append("SendTime: " + trResp.getSendTime() + "\n\n");
}
int trResult = trResp.getResult();
switch(trResult)
{
case 0: // '\0'
deSlideWindow(tmp.getSeqno_1(), tmp.getSeqno_2(), tmp.getSeqno_3());
break;
case 1: // '\001'
SGIPLog.WriteLog(-2, "Trace包:等待处理", logFile);
break;
default:
SGIPLog.WriteLog(-3, "Trace包:未知错误!", logFile);
break;
}
break;
default:
SGIPLog.WriteLog(-3, "未知错误:未知的发送包!", logFile);
break;
}
}
catch(Exception e)
{
SGIPLog.WriteLog(-2, "发送数据包错误: " + e.toString(), logFile);
throw new Exception("发送数据包错误: " + e.toString());
}
return -1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -