<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 注銷..... 閱讀(1425) 評論(1)  編輯  收藏 所屬分類: 閱讀摘要

    評論

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

    主站蜘蛛池模板: 亚洲av不卡一区二区三区 | 一级特黄aaa大片免费看| 毛片高清视频在线看免费观看| 亚洲福利视频网址| 蜜桃AV无码免费看永久| 亚洲精品日韩中文字幕久久久| 小日子的在线观看免费| 亚洲成人在线电影| 国产91色综合久久免费分享| 亚洲国产韩国一区二区| 4hu四虎最新免费地址| 在线综合亚洲欧洲综合网站| 波多野结衣久久高清免费| 亚洲AV无码一区二区三区久久精品 | 久久亚洲精品高潮综合色a片| 四虎影视www四虎免费| 亚洲av午夜国产精品无码中文字| 全黄a免费一级毛片人人爱| 九九久久国产精品免费热6| 亚洲日韩精品无码专区网址| 性无码免费一区二区三区在线| 亚洲综合一区二区精品久久| 成年女人看片免费视频播放器| 国产精品亚洲色图| 国产成人99久久亚洲综合精品| 久久国产精品成人免费| 亚洲三级在线播放| 免费大片黄手机在线观看| APP在线免费观看视频| 亚洲不卡影院午夜在线观看| 亚洲?v女人的天堂在线观看| 免费网站观看WWW在线观看| 亚洲另类小说图片| 亚洲日本va午夜中文字幕久久| 久久这里只精品99re免费| 亚洲午夜福利在线视频| 亚洲精品无码日韩国产不卡?V| 最近2019中文字幕免费大全5| 久久无码av亚洲精品色午夜| 亚洲综合国产一区二区三区| 美女视频黄的全免费视频网站|