在Android程序中使用Modbus协议时报 java.net.SocketException: recvfrom failed: ECONNRESET解决办法

  最近在开发基本Modbus协议的Android端PLC控制程序,C#版程序没有任何问题,移到JAVA下出现各种问题,其中比较苦恼的是java.net.SocketException: recvfrom failed: ECONNRESET错误。

  开始我的解决方法是每次向PLC发送一条数据后关掉socket,但是这样做太极端了。

  经过分析发现是由于发送的数据包大小我设定为256,当写入1个寄存器值时,Modbus服务端直接报错,关掉了socket连接,将发送的数据包大小改成实际的大小后解决问题。

(C#版程序也设定为256,无此现象)

上一篇:(转) 学习C++ -> 引用( References )


下一篇:Linux网络编程之聊天程序(TCP协议之select)