<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
    主站蜘蛛池模板: 黄页网址大全免费观看12网站| 亚洲影视自拍揄拍愉拍| 最近2019中文字幕免费看最新| 成人性生交大片免费看无遮挡| 亚洲精品自在线拍| 日本h在线精品免费观看| 亚洲另类自拍丝袜第1页| eeuss影院免费直达入口| AV在线亚洲男人的天堂| 中文字幕在线日亚洲9| 一个人看的www免费视频在线观看| 免费av欧美国产在钱| 亚洲午夜无码久久| 免费日本黄色网址| 亚洲一区二区三区不卡在线播放| 国产黄色片免费看| 精品国产_亚洲人成在线高清| 亚洲AV日韩综合一区尤物| 国产大片51精品免费观看| 亚洲福利一区二区三区| 在线观看日本免费a∨视频| 亚洲精品成人av在线| 日韩在线观看免费| 日本亚洲成高清一区二区三区| 亚洲aⅴ无码专区在线观看春色 | 1000部国产成人免费视频| 亚洲午夜一区二区电影院| 精品国产免费一区二区| 91亚洲国产成人久久精品网站| 4hu四虎最新免费地址| 亚洲乱码国产乱码精华| 日韩亚洲变态另类中文| 999任你躁在线精品免费不卡| 亚洲人成网站色在线观看| 亚洲七七久久精品中文国产| 福利片免费一区二区三区| 最近中文字幕免费mv视频7| 狠狠躁狠狠爱免费视频无码| 亚洲国产成人久久综合区| 日韩电影免费观看| 亚洲精品久久久久无码AV片软件|