首页 > 解决方案 > 如何在 C# 中处理多个客户端 TCP/IP

问题描述

我正在本地网络上启动一个小型文件共享项目。用户必须能够(暂时)向他选择的另一个用户发送一个句子,连接到我们家的同一个 wifi。问题是我不能创建一个有多个客户端的服务器,因为任何时候服务器都可能停止。

例如:假设我有三台笔记本电脑:A,B和C。A是服务器,与B和C通信,B和C也通过A通信。但我必须能够关闭A但保持连接在 B 和 C 之间,这样他们就可以继续互相发送句子。

我已经开始在 C# 中创建一个将在后台运行的 Windows 服务。但是除了让 A、B 和 C 既是客户端又是服务器之外,还有其他方法吗?

谢谢

标签: c#windowssocketsservice

解决方案


据我所知,网络中的节点既是服务器又是客户端是没有限制的。如果该系统有 IP 和开放的端口,它可以像服务器一样工作。它应该只在该端口上侦听传入请求。同时它也可以连接到另一台服务器。如果系统 B 知道系统 C 的 IP 和端口,它们就可以相互通信。但是在像消息传递应用程序这样的实际情况下,客户端应该向服务器发送消息,因为每次客户端连接到网络时,它都会获得新的 IP。因此,如果这在您的网络中不是问题,您可以做任何您想做的事情。但是如果是这样,您可以在客户端之间定义一个简单的协议,在连接开始时,它们会交换 IP,因此如果服务器关闭,它们可以相互通信。


推荐阅读