Software caused connection abort: socket write error

来源:互联网 发布:gfw屏蔽域名和ip 编辑:程序博客网 时间:2024/05/21 06:46

今天, 写一个应用向web服务器(tomcat)发送大量数据的时候就出现 Software caused connection abort: socket write error的问题了

原先的代码大体如下

1 //out => socket.getOutputStream();2 for(int i = 0; i < length; i++)3 {4     . . . 5   out.write(message.getByte());6 }

 

基本上, 当数据量超过100的时候就会出现 Software caused connection abort: socket write error

由于 Http协议是属于短连接的 即交互之后即断开连接 所以上面的长连接方式是有问题的

该代码如下

复制代码
1 for(int j = 0; j < length; j++)2 {3       socket = new Socket(address, port);4       out = socket.getOutputStream();5       message = xxx;6       out.write(message.getBytes());7       out.flush();8       out.close();9 }
复制代码

就可以无限量的发送请求了

所以在http请求的时候 每条请求都用一个socket来发送应该就不会有问题了

另 附上直接向服务器发送请求的数据前缀

1 String SEND_PREFIX = "POST /SunnyRunLoad/datareceive HTTP/1.1" + DP +2                                                                     "Host:localhost" + DP +3                                                                     "Content-Type:application/x-www-form-urlencoded" + DP +4                                                                     "Content-Length:53" + DP +  DP;

其中 DP = "\r\n"

 

0 0