<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    注銷

    注銷

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      112 隨筆 :: 7 文章 :: 18 評論 :: 0 Trackbacks

    package sms3_0;

    /*
    ?用途:CMPP消息結構體的頭結構
    ?*/
    public class _CMPP_HEADER
    ?implements java.io.Serializable {
    ? private int Total_Length; //消息總長度(含消息頭及消息體)
    ? private int Command_Id; //命令或響應類型
    ? private int Sequence_Id = 1; //消息流水號,順序累加,步長為1,循環使用(一對請求和應答消息的流水號必須相同)

    ? public _CMPP_HEADER() {

    ? }

    ? //產生一個新的消息流水號
    ? protected void setSequence_Id() {
    ?this.Sequence_Id++;
    ? }

    ? //設置命令或響應類型
    ? protected void setCommand_Id(int mCommand_Id) {
    ?this.Command_Id = mCommand_Id;
    ? }

    ? //讀取消息總長度(含消息頭及消息體)
    ? protected int getTotal_Length() {
    ?return this.Total_Length;
    ? }

    ? //設置消息總長度
    ? protected void setTotal_Length(int mTotal_Length) {
    ?this.Total_Length = mTotal_Length;
    ? }
    }
    /////////////////////////////////////////////////////////
    package sms3_0;

    /*
    ?用途:是SP向ISMG注冊作為一個合法SP身份的CMPP_CONNECT消息結構
    ?*/
    import sms3_0._CMPP_HEADER;
    import sms3_0._CMPP_MD5;
    import java.text.SimpleDateFormat;
    import java.text.DateFormat;
    import java.util.Date;

    public class _CMPP_CONNECT extends _CMPP_HEADER
    ?implements java.io.Serializable {
    ? //源地址,此處為SP_Id,即SP的企業代碼
    ? private byte[] Source_Addr;
    ? //AuthenticatorSource =MD5(Source_Addr+9 字節的0 +shared secret+timestamp)
    ? private byte[] AuthenticatorSource;
    ? //雙方協商的版本號(高位4bit表示主版本號,低位4bit表示次版本號),對于3.0的版本,高4bit為3,低4位為0)
    ? private byte Version;
    ? //時間戳的明文,由客戶端產生,格式為MMDDHHMMSS,即月日時分秒,10位數字的整型,右對齊
    ? private int Timestamp;
    ? //SP的shared secret值
    ? private String Shared_Secret;
    ? public _CMPP_CONNECT() {
    ?Source_Addr=new byte[6];
    ?for (int i=0; i<Source_Addr.length;i++) {
    ?? Source_Addr[i]=0;
    ?}
    ?AuthenticatorSource=new byte[16];
    ?for (int i=0; i<AuthenticatorSource.length;i++) {
    ?? AuthenticatorSource[i]=0;
    ?}

    ?super.setTotal_Length(39);
    ?super.setCommand_Id(0x00000001);
    ?this.setVersion();
    ? }

    ? //獲取當前時間和日期的時音
    ? private String getNowDate() {
    ?Date nowDate = new Date();
    ?DateFormat DateFmt = new SimpleDateFormat("MMddHHmmss");
    ?String sTimestamp = DateFmt.format(nowDate);
    ?return sTimestamp;
    ? }

    ? //設定時間戳的明文
    ? public void setTimestamp() {
    ?String sTimestamp = this.getNowDate();
    ?this.Timestamp = Integer.parseInt(sTimestamp);
    ? }

    ? public void setAuthenticatorSource() {
    ?String sTimestamp = this.getNowDate();
    ?String sAuth = this.Source_Addr+ "000000000" + this.Shared_Secret +
    ??sTimestamp;
    ?_CMPP_MD5 md5 = new _CMPP_MD5();
    ?String md5Auth = md5.getMD5String(sAuth);
    ?byte b[] = md5Auth.getBytes();
    ?for (int i = 0; i < 16; i++) {
    ?? if (i < b.length) {
    ??this.AuthenticatorSource[i] = b[i];
    ?? }
    ?? else {
    ??this.AuthenticatorSource[i] = 0;
    ?? }
    ?}
    ? }

    ? //設定版本號
    ? private void setVersion() {
    ?this.Version = 0x30;
    ? }

    ? //設定SP的企業代碼
    ? public void setSource_Addr(String mSource_Addr) {
    ?byte[] b = mSource_Addr.getBytes();
    ?for (int i = 0; i < 6; i++) {
    ?? if (i < b.length) {
    ??this.Source_Addr[i] = b[i];
    ?? }
    ?? else {
    ??this.Source_Addr[i] = 0;
    ?? }
    ?}
    ? }

    ? //設定SP的shared secret
    ? public void setShared_Secret(String mSecret) {
    ?this.Shared_Secret = mSecret;
    ? }
    }
    //////////////////////////////////////////
    package sms3_0;

    import sms3_0._CMPP_CONNECT;
    import java.net.Socket;
    import java.io.*;

    public class Test_CMPP {
    ? public Test_CMPP() {
    ? }

    ? public static void main(String[] args) {
    ?try {
    ?? _CMPP_CONNECT cmpp_connect=new _CMPP_CONNECT();
    ? cmpp_connect.setSource_Addr("901236");
    ? cmpp_connect.setShared_Secret("1236");
    ? cmpp_connect.setTimestamp();
    ? cmpp_connect.setAuthenticatorSource();
    ? cmpp_connect.setSequence_Id();


    ?? Socket CMPP_Socket = new Socket("127.0.0.1", 7890);
    ?? ObjectOutputStream OutSend = new ObjectOutputStream(CMPP_Socket.getOutputStream());
    ? OutSend.writeObject(cmpp_connect);
    ? InputStream a=CMPP_Socket.getInputStream();


    ?}
    ?catch (IOException e) {
    ?? System.out.println("Socket連接出錯了!錯誤為描述為" +
    ?????? e.getMessage());
    ?? System.out.println("Socket未打開");
    ?}

    ?

    ?

    ? }
    }

    posted on 2006-10-13 14:03 注銷..... 閱讀(1424) 評論(1)  編輯  收藏 所屬分類: 閱讀摘要

    評論

    # 請求幫助 2008-11-25 00:08 游客
    朋友能不能把你的代碼發送給我一份看看啊!我郵箱:yueshang654@sina.com  回復  更多評論
      

    主站蜘蛛池模板: 高清在线亚洲精品国产二区| 国产成人人综合亚洲欧美丁香花 | 三年片在线观看免费观看高清电影 | 老司机午夜在线视频免费观| 亚洲欧洲国产精品久久| 丝袜熟女国偷自产中文字幕亚洲| 成人啪精品视频免费网站| 91福利免费视频| 国产日韩一区二区三免费高清| 激情小说亚洲图片| 日韩亚洲不卡在线视频中文字幕在线观看| 国产精品亚洲аv无码播放| 免费很黄很色裸乳在线观看| 成年性生交大片免费看| av大片在线无码免费| 久久中文字幕免费视频| 中文在线观看国语高清免费| 污视频网站在线观看免费| 亚洲成a人无码亚洲成www牛牛| 亚洲一区二区三区在线网站| 亚洲欧洲国产精品久久| 久久精品国产亚洲AV大全| 久久久久亚洲AV成人无码| 精品亚洲永久免费精品| 亚洲精品二区国产综合野狼 | 日亚毛片免费乱码不卡一区| 理论亚洲区美一区二区三区| 亚洲AV香蕉一区区二区三区| 亚洲熟女乱色一区二区三区| 精品亚洲456在线播放| 亚洲乱码一区二区三区国产精品| 亚洲国产精品久久网午夜| 亚洲国产精品无码久久久| 亚洲国产精品yw在线观看| 亚洲一区电影在线观看| 亚洲日本乱码卡2卡3卡新区| 亚洲一区二区三区写真| 国产精品亚洲专一区二区三区| 真正全免费视频a毛片| jizz日本免费| 久久久国产精品福利免费|