1

我想在 C# 中创建应用程序客户端服务器,但不仅在 LAN 中。这很简单:TcpListener、TcpClient 等。

我想像这样做某事,例如在我的电脑上是正在等待连接的服务器。另一个网络中的某个人有客户端。他开始连接,但是……在哪里……服务器的 IP 是什么?他只看到路由器的ip。

有任何想法吗?:)

编辑

大问题也是双NAT

4

3 回答 3

1

您的问题并不能解释整个场景..但是根据我对问题的理解,我可以建议以下答案:根据目标客户群的位置(是否支持企业网络),您可以使用各种路由选项,例如UPnP特技IPv6,或其他一些 NAT 遍历选项,以便您可以通知客户端侦听器的位置。应该总是有一个中央注册服务器,监听器将通知它的位置和在其环境中允许的通信模式。对于此类目的,使用 XMPP 服务器将是一个简单的选择,它可以解决大多数此类问题。一旦客户端从发现服务器查询到监听器的位置,它就可以直接连接到监听器。

于 2010-09-01T13:29:20.567 回答
1

您仍然使用相同的 TcpListener 和 TcpClient(如果您想将其设为低级别)。

通过 WAN 进行通信的技术与通过 LAN 进行通信的技术相同。困难的部分是在客户端和服务器之间建立网络,以允许您使用必要的端口和协议。

于 2010-09-01T12:50:35.833 回答
0

听起来您只想在路由器上设置端口转发。当在客户端连接的特定端口上建立传入连接时,路由器应将连接重定向到您在 LAN 上指定的机器。(通常是像 192.168.xx 这样的 IP)。这也应该是您的 TcpListener 正在侦听连接的 IP 地址。

如果您需要帮助为特定路由器设置它,您可以尝试portforward.com 。

于 2010-09-01T14:35:42.307 回答