socket连接联网查询客户端实现方式

来源:互联网 发布:冒险岛最新怪物数据库 编辑:程序博客网 时间:2024/05/04 13:19

public class Client04 {


public static void main(String args[]) throws Exception {  

     //为了简单起见,所有的异常都直接往外抛  
    String host = "36.33.227.72";  //要连接的服务端IP地址  
    int port = 5002;   //要连接的服务端对应的监听端口  
    //与服务端建立连接  
    Socket client = new Socket(host, port);  
     //建立连接后就可以往服务端写数据了  
     Writer writer = new OutputStreamWriter(client.getOutputStream(), "UTF-8");
     String data = "<?xmlversion='1.0'encoding=\"UTF-8\"?><Service><Service_Header><service_sn>8010101010019164435</service_sn>                        <service_id>00010090003100</service_id><requester_id>0018</requester_id><branch_id sys_id=\"0001\">801010101</branch_id><channel_id>01</channel_id><service_time>20130430164435</service_time><version_id>01</version_id><macvalue/><need_request>true</need_request></Service_Header><Service_Body><request><bankcode>801010101</bankcode><entrustdate>20130430164435</entrustdate><businesscode>01</businesscode><usercode>1110000</usercode><id>61050219900125821X</id><name>张学</name><nation>汉</nation><birthday>19900125</birthday><address>陕西西安</address><issueoffice>渭南</issueoffice><validity></validity><photo></photo><photo>男</photo></request><ext_attributes><T_KEY_LABEL>T0101010</T_KEY_LABEL></ext_attributes></Service_Body></Service>";
     DecimalFormat df = new DecimalFormat("0000000");
     String req_len = df.format(data.getBytes().length);
     writer.write(req_len+data);  
     writer.flush();  
     //写完以后进行读操作  
     System.out.println("------连接正常,开始传输数据---------");
    BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream(), "UTF-8"));  
     //设置超时间为10秒  
    client.setSoTimeout(10*1000);  
     StringBuffer sb = new StringBuffer();  
     String temp;  
     try {  
        while ((temp=br.readLine()) != null) { 
//            if ((index = temp.indexOf("eof")) != -1) {  
//                sb.append(temp.substring(0, index));  
//                break;  
//            }  
           sb.append(temp);  
        }  
     } catch (SocketTimeoutException e) {  
        System.out.println("数据读取超时。");  
     }  
     System.out.println("服务端: " + sb);  
     writer.close();  
     br.close();  
     client.close();  
  }  
}
0 0
原创粉丝点击