最近使用Java做Socket客户端,与C的Socket服务端交互。遇到问题:现象是可以从服务端接受小数据,但是如果接受大数据,总是遇到Connection reset的异常;如果把服务端和客户端放到同一台机器上,无论接受大数据还是小数据都不会出错。
还一度怀疑是网络问题,延时太大。后来经过多次调试才发现,客户端发送的某个数据,服务器端没有执行read操作,导致服务器发送完数据后报错,发送RST消息。这样客户端的Socket就被强制断掉了,导致接受不到剩余数据。
最近使用Java做Socket客户端,与C的Socket服务端交互。遇到问题:现象是可以从服务端接受小数据,但是如果接受大数据,总是遇到Connection reset的异常;如果把服务端和客户端放到同一台机器上,无论接受大数据还是小数据都不会出错。
还一度怀疑是网络问题,延时太大。后来经过多次调试才发现,客户端发送的某个数据,服务器端没有执行read操作,导致服务器发送完数据后报错,发送RST消息。这样客户端的Socket就被强制断掉了,导致接受不到剩余数据。
转载于:https://www.cnblogs.com/Xavierr/p/3533879.html