Software caused connection abort: socket write error

本文探讨了解决向Tomcat服务器发送大量数据时遇到的Software-caused connection abort: socket write error错误的方法。通过采用短连接而非长连接的方式,确保每次HTTP请求使用新的socket连接进行数据发送,从而实现稳定且高效的数据传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个应用向web服务器(tomcat)发送大量数据(基本超过100)的时候就出现 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 }

BUG原因:

    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"



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值