程序是两台机器之间socket通信,生产机A是socket的server,请求机B是socket的client。
我在公司的内网环境中(两台机器都是内网机器,Windows),调试无异常。
把server端部署到外网机器(Linux)上,client还是在内网(Windows),client和server端都会报如下的异常。
server端:
java.net.SocketException: Connection reset
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:96)
at java.net.SocketOutputStream.write(SocketOutputStream.java:124)
client端:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.net.SocketInputStream.read(SocketInputStream.java:182)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
server端和client端的代码就是socket的inputstream和outputstream的write和read,并无特殊处理。
A和B之间是多个socket通信,数据量小的socket都没有抛异常,抛异常的socket发送数据量在1M-1.5M左右。
我之前在网上查过一些解决方式,都没有很好的效果。我想大家有没有遇到过这种问题,