如何让客户端通过modbus-tcp协议与多个服务器通信?
How to let a client communicate with multiple servers by modbus-tcp protocol?
我有一个客户端和许多服务器,我需要让客户端读取不同服务器的值。只有modbus-tcp协议。我需要问的是:
-
除了Windows套接字之外,还有其他解决方案可以解决通信问题吗?如果没有,如何创建套接字并使用它?
-
如何读取多个离散寄存器的值?
-
一个客户端如何与多个服务器通信?创建多个套接字?
我运行在Windows 7,Visual Studio 2015,MFC上。我尝试创建一个套接字,但失败了。
我期待一些有用的文件或直接指导。我对整个技术解决方案不是特别清楚。
你可以编写自己的Modbus堆栈,但除非你的目标是学习,否则我认为没有必要。
对于 MFC,您可以使用libmodbus。它是用C语言编写的,但你应该能够将其与Visual Studio集成,请参阅此处。
您有大量的客户端和服务器端示例,并且所有功能都已实现。
一个客户端可以连接任意数量的服务器,您只需在每个服务器上使用不同的端口并将客户端指向它们。您还可以使用不同的 IP 地址拥有任意数量的服务器。
除了Windows套接字之外,还有其他解决方案可以解决通信问题吗?
是的,您可以使用套接字来处理 TCP 连接。如果您不想直接使用套接字,请使用预先存在的包装器,例如 libmodbus:
"libmodbus 是一个自由软件库,用于根据 Modbus 协议发送/接收数据。该库是用C语言编写的,支持RTU(串行)和TCP(以太网)通信。
如果没有,如何创建套接字并使用它?
有关如何使用 Windows 的套接字库 Winsock 的详细教程位于 Microsoft 的 MSDN 站点上:
https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-start-page-2
一个客户端如何与多个服务器通信?创建多个套接字?
是的。TCP 在客户端和服务器之间使用 1:1 关系。因此,要与多个TCP服务器通信,您需要多个套接字连接。
- 提升::Asio 异步聊天客户端停止与服务器通信
- 如何让客户端通过modbus-tcp协议与多个服务器通信?
- 与语言服务器通信(Languager服务器协议)
- 使用UNIX套接字C++客户端与Node.js服务器通信的简单示例
- 证书验证在客户端服务器通信中使用boost :: asio和openssl失败
- C++ Linux 代理服务器通信
- C++:一个客户端与多个服务器通信
- 未经身份验证的SMTP服务器到服务器通信
- C++ 客户端无法与 Java 服务器通信
- 使用 C/C++、SSL 协议的客户端和服务器通信不起作用
- 如果传递长类型,32位客户端如何与64位服务器通信
- Raspberry Pi 和 Android 之间的客户端-服务器通信
- 服务中的 DDE 客户端与用户会话中的服务器通信
- 为客户端-服务器通信构建TCP/IP服务器的最佳方式
- QTcpSocket双向客户端-服务器通信
- 如何在一个套接字上实现并行请求和响应的非阻塞客户端-服务器通信模型,而不存在数据竞争
- WinSock2 客户端/服务器通信:发送和接收字符串
- 客户端-服务器通信:并非所有元素的发送和接收都使用套接字
- 我无法让多个小程序与我的 Cpp 服务器通信
- java客户端通过TCP连接与c++服务器通信