客户服务器关系混乱
Client Server Relationship Confusion
我有 5 台控制不同硬件的计算机。五个中的一个是另外 4 个的主控制器。我需要通过 TCPIP 从主控制器向 4 个从属控制器发送命令。我对 Socket 编程的经验非常有限。
在我的系统中,哪个是客户端,哪个是服务器?在我看来,在我的配置中,服务器和客户端之间的界限可能会倾斜。双方都需要发送和接收命令,客户端和服务器真的是分开的还是只是约定俗成?我可以使用同一个套接字同时将两个端点作为客户端和服务器吗? 基本上我可以让两端监听和发送请求吗?
我参考了 MSN 上的示例代码。
就套接字连接而言,谁是客户端谁是服务器只是谁接受连接(服务器)和谁发起连接请求(客户端)的问题。
建立连接后,流量可以双向传输(客户端和服务器都可以发送 and/or 接收数据)。
你的主控制器是服务器。当它上线时,它会监听您的奴隶宣布他们在线。他们通过作为客户端连接到服务器来做到这一点。服务器将接受连接。
如果每个从属都执行一些特殊功能,那么您应该有一条消息,客户端可以向服务器发送一条消息来指示此功能。如果系统正常运行需要所有从站,那么您将需要等待所有从站宣布其不同的功能。
然后您的服务器将能够向不同的客户端发送消息或向所有客户端广播。每个客户端只能向服务器发送消息。如果需要客户端到客户端的通信,您可能会在服务器中实现消息转发。这样,您的客户不需要知道其他客户的地址。他们只需要知道他们的功能,该功能将用于将消息路由到适当的客户端。
我基本上是说您需要定义一个协议,您的节点将通过该协议进行通信。该协议将规定哪个节点将成为服务器,哪个节点将成为客户端。
如果事实证明您的协议更适合点对点而不是客户端-服务器,您可能需要考虑使用 UDP 而不是 TCP。
我有 5 台控制不同硬件的计算机。五个中的一个是另外 4 个的主控制器。我需要通过 TCPIP 从主控制器向 4 个从属控制器发送命令。我对 Socket 编程的经验非常有限。
在我的系统中,哪个是客户端,哪个是服务器?在我看来,在我的配置中,服务器和客户端之间的界限可能会倾斜。双方都需要发送和接收命令,客户端和服务器真的是分开的还是只是约定俗成?我可以使用同一个套接字同时将两个端点作为客户端和服务器吗? 基本上我可以让两端监听和发送请求吗?
我参考了 MSN 上的示例代码。
就套接字连接而言,谁是客户端谁是服务器只是谁接受连接(服务器)和谁发起连接请求(客户端)的问题。
建立连接后,流量可以双向传输(客户端和服务器都可以发送 and/or 接收数据)。
你的主控制器是服务器。当它上线时,它会监听您的奴隶宣布他们在线。他们通过作为客户端连接到服务器来做到这一点。服务器将接受连接。
如果每个从属都执行一些特殊功能,那么您应该有一条消息,客户端可以向服务器发送一条消息来指示此功能。如果系统正常运行需要所有从站,那么您将需要等待所有从站宣布其不同的功能。
然后您的服务器将能够向不同的客户端发送消息或向所有客户端广播。每个客户端只能向服务器发送消息。如果需要客户端到客户端的通信,您可能会在服务器中实现消息转发。这样,您的客户不需要知道其他客户的地址。他们只需要知道他们的功能,该功能将用于将消息路由到适当的客户端。
我基本上是说您需要定义一个协议,您的节点将通过该协议进行通信。该协议将规定哪个节点将成为服务器,哪个节点将成为客户端。
如果事实证明您的协议更适合点对点而不是客户端-服务器,您可能需要考虑使用 UDP 而不是 TCP。