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();
}
}