我编写了一个小型C程序,它实现了基于libmodbus库的Modbus主程序和从服务器程序。这个程序安装在一个Ubuntu16.04.6LTS系统(A)上,运行非常好。
如果我将我的程序的一个实例作为Modbus从本地启动,我可以从另一个作为Master运行的实例在本地轮询它(target = localhost:502)。但是,如果我尝试从同一网络上的另一个设备(B)轮询从另一个设备(B)获得的从服务器,我将得到“无法连接到TCP端口。端口关闭”。
编辑

发布于 2019-04-30 12:06:21
在OP的情况下,使用netcat进行调试表明,问题不在网络中,也不在运行侦听进程的Ubuntu系统中。具体来说,可以从localhost访问从进程,但不能从同一网络中的另一个主机。
因此,问题必须在编码中解决。结果,套接字被绑定到本地主机地址(127.0.0.1),而不是IP地址。通过该接口从网络到达的数据包将永远无法到达侦听过程。
https://askubuntu.com/questions/1139380
复制相似问题