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

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

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

    posts - 22,comments - 35,trackbacks - 0

    首先,你要選擇一臺移動或者聯通的短信服務器做你們的發送短信接口.這是最關鍵的一步,也是最底層的,

    當然這是需要much money的,呵呵.沒辦法!現實了點....

    然后你就是在連接接口的服務器做技術了.用JAVA 的 SOCKET 來監聽客戶端的SOCKET,當然這是需要一定的

    難度,和普通是有很多的區別,例如每秒鐘可以同時接受3000條SOCKET... ...,要進行客戶端的認證.要進行數據

    流轉輸的加密... ...

    最后就是來處理客戶端的發送SOCKET了,其實他們傳輸都是字節Byte...


    public class Client
    {
       
    //構造函數
       public Client()
       
    {
          connectStatus 
    = false;
          loginStatus 
    = false;
          default_ip 
    = "";
          default_port 
    = 0;
          default_user 
    = "";
          default_password 
    = "";
          connection 
    = null;
          input 
    = null;
          out 
    = null;
          binput 
    = null;
       }


       
    //連接函數
       public boolean connect(String ip, int port)
       
    {
          
    boolean result = false;
          
    if(ip == null || ip.indexOf("."< 1)
          ip 
    = default_ip;
          
    if(port < 1)
          port 
    = default_port;

          
    try{
             connection 
    = new Socket(ip, port);
             input 
    = connection.getInputStream();
             binput 
    = new BufferedInputStream(input);
             out 
    = connection.getOutputStream();
             result 
    = true;
             connectStatus 
    = true;
             default_ip 
    = ip;
             default_port 
    = port;
          }

          
    catch(Exception e){
             result 
    = false;
          }

          
    return result;
       }


       
    //登錄函數
       public int login(String userName, String password){
          
    int loginRes = -1;
          
    if(!connectStatus)
             
    return 1;
          
    if(userName == null || userName.trim().equals(""))
             
    return 24;
          
    byte loginData[] = new byte[43];
          setIntData(
    43, loginData, 0);
          setIntData(
    1, loginData, 4);
          setIntData(
    1, loginData, 8);
          userName.getBytes(
    0, userName.length(), loginData, 12);
          password.getBytes(
    0, password.length(), loginData, 22);
          loginData[
    38= 1;
          setTime((
    new Date()).getTime() / (long)1000, loginData, 39);
          
    try{
             out.write(loginData);
             out.flush();
             
    byte rec[] = new byte[30];
             
    char ret = '\0';
             
    int i = 0;
             
    do{
                
    if(i >= 400)
                   
    break;
                
    if(binput.available() > 0){
                   input.read(rec, 
    030);
                   ret 
    = (char)rec[12];
                   
    break;
                }

                Thread.sleep(
    50L);
                i
    ++;
             }
     while(true);

             
    if(ret == 'T'){
                loginStatus 
    = true;
                default_user 
    = userName;
                default_password 
    = password;
                
    int k = 0;
                
    return k;
             }

             loginRes 
    = 1;
          }

          
    catch(Exception e){
             
    int j = 1;
             
    return j;
          }

          
    return loginRes;
       }


       
    //發送函數

       
    public int submit(String servicer_id, int msg_type, int status_report, String src_addr, String dest_addr, String schedule, String expire,int msg_fmt, byte msg_content[], String fee_type, String fee_code, String fee_mobile, 
    String fee_by, 
    int pid){

          
    int subRes = -1;
          
    if(!connectStatus || !loginStatus)
          
    return 1;
          
    byte submitData[] = new byte[264];
          setIntData(
    264, submitData, 0);
          setIntData(
    4, submitData, 4);
          setIntData(
    1, submitData, 8);
          servicer_id.getBytes(
    0, servicer_id.length(), submitData, 12);
          submitData[
    22= (byte)msg_type;
          submitData[
    23= (byte)status_report;
          
    if(src_addr == null || src_addr.trim().length() < 1)
             
    return 14;
          src_addr.getBytes(
    0, src_addr.length(), submitData, 24);
          
    if(dest_addr == null || dest_addr.trim().length() < 1)
          
    return 15;
          dest_addr.getBytes(
    0, dest_addr.length(), submitData, 45);
          
    if(schedule != null && schedule.trim().length() > 1 && !setTime(schedule, submitData,66))
             
    return 16;
          
    if(expire != null && expire.trim().length() > 1 && !setTime(expire, submitData, 70))
             
    return 17;
          submitData[
    74= (byte)msg_fmt;
          submitData[
    75= (byte)msg_content.length;
          System.arraycopy(msg_content, 
    0, submitData, 76, msg_content.length);
          fee_type.getBytes(
    0, fee_type.length(), submitData, 236);
          fee_code.getBytes(
    0, fee_code.length(), submitData, 244);
          
    if(fee_mobile != null && fee_mobile.trim().length() > 11)
          fee_mobile 
    = fee_mobile.substring(2);
          fee_mobile.getBytes(
    0, fee_mobile.length(), submitData, 250);
          fee_by.getBytes(
    02, submitData, 261);
          
    if(pid < 0 || pid > 256)
             pid 
    = 0;
          submitData[
    263= (byte)pid;
          
    boolean reSend = false;
          
    try{
             out.write(submitData);
             out.flush();
          }

          
    catch(Exception e){
             reSend 
    = true;
          }

          
    if(reSend){
             
    int sendTimes = 0;
             
    do{
                
    if(sendTimes >= 2)
                   
    break;
                
    try{
                   connect(default_ip, default_port);
                   login(default_user, default_password);
                   out.write(submitData);
                   out.flush();
                   reSend 
    = false;
                   
    break;
                }

                
    catch(Exception exception){
                   sendTimes
    ++;
                }

             }
     while(true);
          }

          
    if(reSend){
             connectStatus 
    = false;
             loginStatus 
    = false;
             
    return 1;
          }

          
    try{
             
    byte sub[] = new byte[17];
             
    char sRet = '\0';
             
    int i = 0;
             
    do{
                
    if(i >= 1500)
                   
    break;
                
    if(binput.available() > 0){
                   input.read(sub, 
    017);
                   sRet 
    = (char)sub[16];
                   
    break;
                }

                Thread.sleep(
    10L);
                i
    ++;
             }
     while(true);
          
    if(sRet == 'T')
             subRes 
    = 0;
          
    else
             subRes 
    = 11;
          }

          
    catch(Exception e){
             subRes 
    = 1;
          }

          
    return subRes;
       }
     

    }


    posted on 2006-02-17 10:06 kelven 閱讀(608) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 亚洲AV人无码激艳猛片| 无人在线观看完整免费版视频| 美女视频黄免费亚洲| 亚洲综合自拍成人| 成人免费视频88| a级毛片免费高清毛片视频| 精品亚洲一区二区三区在线观看| 亚洲av日韩av永久无码电影| 久久久久亚洲?V成人无码| 59pao成国产成视频永久免费 | 亚洲AV无码不卡无码| 久久久WWW免费人成精品| 亚洲日韩国产精品第一页一区| 国产精品色拉拉免费看| 亚洲中文字幕人成乱码 | 久久亚洲精品无码aⅴ大香| 国产精品麻豆免费版| 亚洲av色香蕉一区二区三区| 国产V亚洲V天堂A无码| 无人在线观看免费高清| 国产成人人综合亚洲欧美丁香花| 亚洲午夜在线电影| 亚洲国产精品嫩草影院久久 | 男人和女人高潮免费网站| 亚洲精品WWW久久久久久| 五月婷婷在线免费观看| 国产做国产爱免费视频| 亚洲av无码偷拍在线观看| 亚洲精品熟女国产| 亚洲中文字幕第一页在线| www.亚洲精品.com| 全免费a级毛片免费看无码| 在线日本高清免费不卡| 亚洲人xxx日本人18| 久久精品国产亚洲夜色AV网站| 免费jjzz在线播放国产| 香蕉视频在线免费看| 亚洲a无码综合a国产av中文| 亚洲香蕉在线观看| 亚洲美女视频免费| 亚洲AV无码精品色午夜果冻不卡 |