我有一个我想讨论的问题。 我使用npm模块节点7与西门子PLC(一种用于自动化流程的工业计算机)进行通信。 NodeS7使用net-module为整个通信创建一个套接字。
现在问题: 我正在读取plc的循环值。为了模拟连接错误,我拔下了以太网电缆。我在三个操作系统上测试了我的软件的反应。 Windows,Ubuntu VM和目标系统是嵌入式Linux操作系统。他们每个人都表现不同。 Windows-OS和Ubuntu VM正在停止良好的通信。在emb。 Linux没有任何反应。我调试了网络模块,看看它发生了什么。
下图显示了每个操作系统的日志文件。
left shell = Windows:在nodeS7-library超时后,net-module检测到ECONNRESET middle shell = Ubuntu:在nodeS7-library的超时后,网络模块检测到EOF right shell =嵌入式Linux:没有检测到任何东西
当你查看网络模块的src-code时,可以看到调试日志onread是在onread-function中创建的。只要句柄获得缓冲区,或者读取错误,就会始终调用on-read函数。见here
好吧,我有阅读错误。我做错了什么??? 有什么想法吗?