<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

    首先,你要選擇一臺移動或者聯(lián)通的短信服務(wù)器做你們的發(fā)送短信接口.這是最關(guān)鍵的一步,也是最底層的,

    當(dāng)然這是需要much money的,呵呵.沒辦法!現(xiàn)實了點....

    然后你就是在連接接口的服務(wù)器做技術(shù)了.用JAVA 的 SOCKET 來監(jiān)聽客戶端的SOCKET,當(dāng)然這是需要一定的

    難度,和普通是有很多的區(qū)別,例如每秒鐘可以同時接受3000條SOCKET... ...,要進行客戶端的認(rèn)證.要進行數(shù)據(jù)

    流轉(zhuǎn)輸?shù)募用?.. ...

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


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


       
    //連接函數(shù)
       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;
       }


       
    //登錄函數(shù)
       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;
       }


       
    //發(fā)送函數(shù)

       
    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
    主站蜘蛛池模板: 在线免费观看毛片网站| 在线a亚洲老鸭窝天堂av高清| 免费A级毛片无码免费视| 在线观看免费精品国产| 99久久免费中文字幕精品| a级毛片免费观看在线| 日韩亚洲人成网站| 成人亚洲国产va天堂| 4444亚洲国产成人精品| 亚洲免费观看视频| 可以免费看黄的网站| 日本免费高清视频| 亚洲日韩一中文字暮| 亚洲女人被黑人巨大进入| 久久久99精品免费观看| 中美日韩在线网免费毛片视频 | 五级黄18以上免费看| 亚洲AV色欲色欲WWW| 亚洲人成无码网站| 亚洲乱码国产一区网址| 国产免费av一区二区三区| 免费无码成人AV在线播放不卡 | 免费jlzzjlzz在线播放视频| 免费看一区二区三区四区| 中国亚洲呦女专区| 亚洲一区二区观看播放| 亚洲日韩国产AV无码无码精品| 亚洲日韩中文字幕| 亚洲区视频在线观看| 亚洲一线产区二线产区精华| 国产乱辈通伦影片在线播放亚洲 | 91亚洲视频在线观看| 精品无码一区二区三区亚洲桃色 | 麻豆高清免费国产一区| 国产精品永久免费| 黄视频在线观看免费| 亚洲第一se情网站| 国产成人综合久久精品亚洲| 美女啪啪网站又黄又免费| 中文字幕在线观看亚洲视频| 2020国产精品亚洲综合网|