使用 public IP 的 C# 中的 TCPclient

TCPclient in C# with public IP

是否可以在 c# 中使用具有 public IP 地址(或在我的 LAN 之外)的 TCPclient 和 TCPlistener?如果 NAT 为每个 LAN 通信随机分配端口号,是否有任何方法可以知道其 NAT 路由器将分配给 TCPlistener 的端口号以使 TCPclient 能够与其通信。 P.S。如果不可能有任何其他 tool/technique 可以在不重新配置路由器(将所有消息转发到 TCPlistener)的情况下在 LAN 外部进行通信吗?

看看

TcpListener.AllowNatTraversal

这可以通过 Toredo、6to4 或 ISATAP 隧道来完成。

如果您的 NAT 设备支持,另一个选项是 UPnP。