客户端-服务器关系混乱

本文关键字:混乱 关系 服务器 客户端 | 更新日期: 2023-09-27 18:23:49

我有5台控制不同硬件的计算机。五个中的一个是其他四个的主控制器。我需要通过TCPIP将命令从主控制器发送到4个从控制器。我对Socket编程的经验非常有限。

在我的系统中,哪个是客户端,哪个是服务器?在我看来,在我的配置中,服务器和客户端之间的界限可能是扭曲的。双方都需要发送和接收命令,是否真的存在客户端和服务器的分离,或者这只是惯例?我可以同时使用同一个套接字将两个端点作为客户端和服务器吗本质上,我可以让两端都监听和发送请求吗

我引用MSN上的示例代码。

异步服务器套接字

异步客户端套接字

客户端-服务器关系混乱

就套接字连接而言,谁是客户端,谁是服务器只是谁接受连接(服务器)和谁发起连接请求(客户端)的问题。

一旦建立了连接,流量就可以向任何一个方向发展(客户端和服务器都可以发送和/或接收数据)。

您的主控制器是服务器。当它上线时,它会听你的奴隶宣布他们上线了。他们通过作为客户端连接到服务器来实现这一点。服务器将接受连接。

如果每个从服务器都执行一些特殊的功能,那么客户端可以向服务器发送一条指示该功能的消息。如果系统正常运行需要所有从属设备,则需要等待所有从属设备宣布其不同功能。

然后,您的服务器将能够向不同的客户端发送消息或向所有客户端广播消息。每个客户端只能向服务器发送消息。如果需要客户端到客户端的通信,您可能会在服务器中实现消息转发。这样,您的客户就不需要知道其他客户的地址。他们只需要知道自己的功能,该功能将用于将消息路由到相应的客户端。

我基本上是说,您需要定义一个协议,您的节点将通过该协议进行通信。该协议将规定哪个节点将是服务器,哪个节点将成为客户端。

如果您的协议更适合对等而不是客户端服务器,您可能需要考虑使用UDP而不是TCP。