当前位置:编程学习 > JAVA >>

smgp3.3协议 MT消息总是返回10(消息结构错误) 怎么回事?

[INFO ] 2010-01-04 14:29:15,984--> MT-TEST Start 
[INFO ] 2010-01-04 14:29:15,984-->连接主机:219.XXX.X.XX端口:3058
[INFO ] 2010-01-04 14:29:16,218-->成功建立起和网关的socket连接
[DEBUG] 2010-01-04 14:29:16,234-->FinalDef.CMD_SMGP_LOGIN==1
[DEBUG] 2010-01-04 14:29:16,234-->this.lCommand_ID==1
[INFO ] 2010-01-04 14:29:16,234-->com.sxit.smgp3.TSMGP_LOGIN 消息处理,序列号=1
[DEBUG] 2010-01-04 14:29:16,234-->企业代码:XXXX,密码:XXXX,SP:XX XX XX...
[DEBUG] 2010-01-04 14:29:16,250-->md5散列码:XX XX XX...
[DEBUG] 2010-01-04 14:29:16,250-->lTotal_Length==42
[DEBUG] 2010-01-04 14:29:16,250-->lCommand_ID==1
[DEBUG] 2010-01-04 14:29:16,250-->lSerial_ID==1
[INFO ] 2010-01-04 14:29:16,250-->com.sxit.smgp3.TSMGP_LOGIN 发送包体成功
[DEBUG] 2010-01-04 14:29:16,484-->读connectresp消息时输入流长度为:33
[INFO ] 2010-01-04 14:29:16,484-->本次输入流读取完毕,totalLength=33
[DEBUG] 2010-01-04 14:29:16,484-->返回包长度解析后为:33
[DEBUG] 2010-01-04 14:29:16,484-->返回包命令字解析后=-2147483647,实际=-2147483647
[DEBUG] 2010-01-04 14:29:16,484-->返回包序列号解析后为:1
[INFO ] 2010-01-04 14:29:16,484-->connectResp消息解析成功,status=0,sequenceID=1
[INFO ] 2010-01-04 14:29:16,484-->连接ISMG返回值:2
[DEBUG] 2010-01-04 14:29:16,484-->this.lCommand_ID==4
[INFO ] 2010-01-04 14:29:16,484-->com.sxit.smgp3.TSMGP_ACTIVE_TEST 消息处理,序列号=2
[DEBUG] 2010-01-04 14:29:16,484-->lTotal_Length==12
[DEBUG] 2010-01-04 14:29:16,484-->lCommand_ID==4
[DEBUG] 2010-01-04 14:29:16,484-->lSerial_ID==2
[INFO ] 2010-01-04 14:29:16,484-->com.sxit.smgp3.TSMGP_ACTIVE_TEST 发送包体成功
[DEBUG] 2010-01-04 14:29:16,718-->读activeresp时输入流可读长度为:12
[INFO ] 2010-01-04 14:29:16,718-->本次输入流读取完毕,totalLength=12
[DEBUG] 2010-01-04 14:29:16,718-->返回包长度解析后为:12
[DEBUG] 2010-01-04 14:29:16,718-->返回包命令字解析后=-2147483644,实际=-2147483647
[DEBUG] 2010-01-04 14:29:16,718-->返回包序列号解析后为:2
[INFO ] 2010-01-04 14:29:16,718-->测试链路返回值:0
[DEBUG] 2010-01-04 14:29:16,718-->this.lCommand_ID==2
[INFO ] 2010-01-04 14:29:16,718-->com.sxit.smgp3.TSMGP_SUBMIT 消息处理,序列号=3
[DEBUG] 2010-01-04 14:29:16,718-->TLV 包长度=222
[INFO ] 2010-01-04 14:29:16,718-->接收方:150XXXXXX,业务代码:13
[DEBUG] 2010-01-04 14:29:16,718-->TLV 包长度=222
[INFO ] 2010-01-04 14:29:16,718-->tlv.length包长度:222
[INFO ] 2010-01-04 14:29:16,718--> 组装包长度:376
[DEBUG] 2010-01-04 14:29:16,718-->lTotal_Length==388
[DEBUG] 2010-01-04 14:29:16,718-->lCommand_ID==2
[DEBUG] 2010-01-04 14:29:16,718-->lSerial_ID==3
[INFO ] 2010-01-04 14:29:16,718-->com.sxit.smgp3.TSMGP_SUBMIT 发送包体成功
[DEBUG] 2010-01-04 14:29:16,953-->读submitresp时输入流可读长度为:26
[INFO ] 2010-01-04 14:29:16,953-->本次输入流读取完毕,totalLength=26
[DEBUG] 2010-01-04 14:29:16,953-->返回包长度解析后为:26
[DEBUG] 2010-01-04 14:29:16,953-->返回包命令字解析后=-2147483646
[DEBUG] 2010-01-04 14:29:16,953-->返回包序列号解析后为:3
[INFO ] 2010-01-04 14:29:16,953-->TSMGP_RESP消息解析成功,status=10,sequenceID=3
[INFO ] 2010-01-04 14:29:16,953-->发送MT返回值:10 --- seqid:3
[INFO ] 2010-01-04 14:29:16,953-->socket连接关闭成功


demo 代码:

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


import com.sxit.smgp3.SMGP3;
import com.sxit.smgp3.TSMGP_RESP;
import com.sxit.smgp3.TSMGP_SUBMIT;
import com.sxit.smgp3.TSMGP_TLV;
import com.sxit.smgp3.socket.SMGPSocket;
import com.sxit.util.Common;

public class TestMT {
    /**
     * Logger for this class
     */
    private static final Log log = LogFactory.getLog(TestMT.class);

    public static void main(String args[]) throws Exception
    {
     log.info(" MT-TEST Start ");
        SMGP3 smgp=new SMGP3();
        int socketID=smgp.SMGP_Connect("219.XXX.XX.XX",3058, "XXXXX", "XXXX");
        
        log.info("连接ISMG返回值:"+socketID);
        
        if (socketID>0)
        {
        
        int test_ret=smgp.SMGPActiveTest(socketID);
        
        log.info("测试链路返回值:"+test_ret);
        
        if (test_ret==0) 
        {
        TSMGP_SUBMIT submit=new TSMGP_SUBMIT();
        submit.cMsgType=6;
        submit.cNeedReport=1;
        submit.cPriority=0;
        submit.sServiceID="13";
        submit.sFeeType="00";
        submit.sFeeCode="0";
        submit.sFixedFee="0";
        submit.sValidTime="";
        submit.sAtTime="";
        
        submit.sSrcTermID="10635XXXXXXX";
        submit.sChargeTermID="010XXXXXXX";
        
   
        submit.sDestTermID="150XXXXXXX";
        
        submit.ucMsgFormat=15;
        
        submit.sMsgContent="sxit测试短信5555566";
      
        submit.sReserve="";
        
        TSMGP_TLV tlv=new TSMGP_TLV();
       

             
        tlv.b_cDestMaskFlag=true;
        tlv.cDestMaskFlag=1;
    
        tlv.b_cFeeFlag=true;
        tlv.cFeeFlag=1;
        
        tlv.b_cFeeMaskFlag=true;
        tlv.cFeeMaskFlag=1;
        
     
        tlv.b_cMServiceID=true;
        tlv.cMServiceID=1;
        
        tlv.b_cMsgType=true;
        tlv.cMsgType=1;
        
        tlv.b_cNodesCount=true;
        tlv.cNodesCount=1;
        
        tlv.b_cPid=true;
        tlv.cPid=1;
        
        tlv.b_cPkNumber=true;
        tlv.cPkNumber=1;
        
        tlv.b_cPkTotal=true;
        tlv.cPkTotal=1;
        
        tlv.b_cSpDealResult=true;
        tlv.cSpDealResult=1;
        
        tlv.b_cSpMaskFlag=true;
        tlv.cSpMaskFlag=1;
        
        tlv.b_cSrcMaskFlag=true;
        tlv.cSrcMaskFlag=1;
        
        tlv.b_cUdhi=true;
        tlv.cUdhi=1;
        
        tlv.b_strDestNumberMask=true;
        tlv.strDestNumberMask="123";
        
        tlv.b_strMsgSrc=true;
        tlv.strMsgSrc="测试TLV";
        
        tlv.b_strFeeNumberMask=true;
        tlv.strFeeNumberMask="232";
        
        tlv.b_strLinkId=true;
        tlv.strLinkId="";
         
        tlv.b_strSrcNumberMask=true;
        tlv.strSrcNumberMask="4333435";
       

        //submit.tsmgpTlv=tlv;
        
        TSMGP_RESP resp=new TSMGP_RESP();
        int submit_ret=smgp.SMGP_Submit(socketID, submit, resp);
        
        log.info("发送MT返回值:"+submit_ret +" --- seqid:"+resp.getLSerial_ID());
        }
        }
        
        
        smgp.SMGP_Disconnect(socketID);
        
    }
     
    private static String bytes2hex(byte[] b) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < b.length; i++)
            sb.append(Common.byte2hex(b[i]) + " ");
        return sb.toString();
    }
    

}
--------------------编程问答-------------------- 楼主,您刷屏啊。。? --------------------编程问答-------------------- lz 还能不能看到啊

我也在搞这个smgp。。

demo 代码:跟你的类似
不过一直返回 -78.搞得我快晕了、。。

->成功建立起和网关的socket连接
[DEBUG] 2011-10-21 18:19:12,216-->FinalDef.CMD_SMGP_LOGIN==1
[DEBUG] 2011-10-21 18:19:12,216-->this.lCommand_ID==1
[INFO ] 2011-10-21 18:19:12,219-->com.sxit.smgp3.TSMGP_LOGIN 消息处理,序列号=1
[DEBUG] 2011-10-21 18:19:12,223-->企业代码:,密码: 35 
[DEBUG] 2011-10-21 18:19:12,223-->md5散列码:95 5C 7B 01 4A FE 10 E6 FC 61 72 C8 13 BA 9C 1D 
[DEBUG] 2011-10-21 18:19:12,223-->lTotal_Length==42
[DEBUG] 2011-10-21 18:19:12,223-->lCommand_ID==1
[DEBUG] 2011-10-21 18:19:12,223-->lSerial_ID==1
[INFO ] 2011-10-21 18:19:12,223-->com.sxit.smgp3.TSMGP_LOGIN 发送包体成功
[DEBUG] 2011-10-21 18:19:12,534-->输入流长度为:33
[DEBUG] 2011-10-21 18:19:12,534-->返回包长度解析后为:33
[DEBUG] 2011-10-21 18:19:12,535-->返回包命令字解析后=-2147483647,实际=-2147483647
[DEBUG] 2011-10-21 18:19:12,535-->返回包序列号解析后为:1
[INFO ] 2011-10-21 18:19:12,535-->connectResp消息解析成功,status=20,sequenceID=1
[INFO ] 2011-10-21 18:19:12,535-->连接ISMG返回值:20
[DEBUG] 2011-10-21 18:19:12,545-->this.lCommand_ID==2
[INFO ] 2011-10-21 18:19:12,545-->com.sxit.smgp3.TSMGP_SUBMIT 消息处理,序列号=2
[DEBUG] 2011-10-21 18:19:12,545-->TLV 包长度=0
[INFO ] 2011-10-21 18:19:12,545-->接收方:123919994115,业务代码:20006
[DEBUG] 2011-10-21 18:19:12,545-->TLV 包长度=0
[INFO ] 2011-10-21 18:19:12,545-->tlv.length包长度:0
[INFO ] 2011-10-21 18:19:12,545--> 组装包长度:138
[DEBUG] 2011-10-21 18:19:12,545-->lTotal_Length==150
[DEBUG] 2011-10-21 18:19:12,545-->lCommand_ID==2
[DEBUG] 2011-10-21 18:19:12,546-->lSerial_ID==2
[INFO ] 2011-10-21 18:19:12,546-->com.sxit.smgp3.TSMGP_SUBMIT 发送包体成功
[WARN ] 2011-10-21 18:19:22,547-->读取输入流时租塞
[INFO ] 2011-10-21 18:19:22,547-->发送MT返回值:-78 --- seqid:0 msgid=null --------------------编程问答-------------------- 楼主要是看到了,帮帮小弟这个后来者 啊 --------------------编程问答-------------------- 楼上的搞定smpg 短信收发没有啊?

请指教啊

qq:271910941
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,