TcpClient-如何连接到外部IP地址

本文关键字:外部 IP 地址 连接 何连接 TcpClient- | 更新日期: 2023-09-27 17:52:16

我一直在尝试设置一个基本的场景,其中TcpClient连接到同一台机器上的TcpListener,但到目前为止,它只适用于127.0.0.1192.168.X.Y。下面是我的代码:

var server = new TcpListener(IPAddress.Any, 51328);
server.Start();
var client = new TcpClient();
client.ConnectAsync(IPAddress.Parse("address from whatismyip"), 51328);
server.AcceptTcpClient(); // hangs indefinitely here
Console.ReadKey();

我从whatismyip得到了我的外部地址,但我不确定我是否做得正确。我的程序有什么问题吗?

TcpClient-如何连接到外部IP地址

我假设你正在尝试通过互联网连接?如果你是通过COMCAST这样的互联网提供商连接的,那么你可能有一个电缆调制解调器?要做到这一点,你需要在路由器上设置端口转发。

互联网只看到你的电缆调制解调器,你对互联网的所有请求都作为你的电缆调制解调器的IP发出,路由器能够"路由"数据包进出你的192.168.x。因此,为了让您的192.168机器能够侦听和接受,您必须告诉您的路由器将端口51328上的任何消息转发到您的机器。

因此您的代码将使用192.168.x. x. net监听端口51328。Xx地址,然后设置路由器。要测试它,您可以使用分配给调制解调器的公共互联网地址进行连接。