Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用internet IP地址连接到本地计算机IP地址_C#_Sockets_Tcp - Fatal编程技术网

C# 无法使用internet IP地址连接到本地计算机IP地址

C# 无法使用internet IP地址连接到本地计算机IP地址,c#,sockets,tcp,C#,Sockets,Tcp,上个月我写了一个多人游戏。我只在一台机器上测试过它,使用127.0.01:9051作为IPEndPoint 我将IP地址更改为WAN IP,在路由器上配置端口转发,配置软件防火墙等。。。但是,它没有连接 我已使用检查端口是否打开。结果:端口确实打开了 而且,当我检查该网站的端口时,我的服务器接收到的数据包很好;然而,当我从自己的机器连接时。。。它没有收到任何东西 我已经把一切都分解到了最基本的部分,以确保我的代码没有问题 此基本代码不起作用: IPEndPoint iep = new IPEnd

上个月我写了一个多人游戏。我只在一台机器上测试过它,使用127.0.01:9051作为IPEndPoint

我将IP地址更改为WAN IP,在路由器上配置端口转发,配置软件防火墙等。。。但是,它没有连接

我已使用检查端口是否打开。结果:端口确实打开了

而且,当我检查该网站的端口时,我的服务器接收到的数据包很好;然而,当我从自己的机器连接时。。。它没有收到任何东西

我已经把一切都分解到了最基本的部分,以确保我的代码没有问题

此基本代码不起作用:

IPEndPoint iep = new IPEndPoint(IPAddress.Parse("XXX.XXX.XXX.XXX"), 9051);
TcpClient client = new TcpClient();
client.Connect(iep);

非常感谢您的任何想法。

如果您试图连接到转发(外部IP)到同一台机器(内部IP)的IP,它将无法工作。很少有企业防火墙,也没有消费设备(据我所知)能够从内向外路由数据包并将其转换回内

[互联网]--外部IP[路由器/防火墙]内部IP1--内部IP2[计算机]


在这种情况下,来自insideIP(X)的数据包将无法连接到outsideIP。

尝试查看是否可以远程登录到端口9051上的wan IP。当你从网络本身连接到路由器的广域网IP时,路由器并不喜欢这样

您可以使用Dyndns或外部世界的其他服务连接到您的服务器,并将相同的名称放入解析为127.0.0.1的主机文件中,以便您可以进行内部连接

您的客户端和服务器(在失败测试中都是同一台机器)是否使用相同的端点ip/端口?一次只能绑定一个端口一次。尝试使用两个端口,一个用于服务器,另一个用于服务器输出(clinet-in)。这样他们就不会发生冲突。使用Telnet检查您是否可以连接到正在使用的IP/端口,使用Netstat检查它们是否尚未使用。

因此,基本上我需要为自己创建一个单独的客户端,该客户端使用127.0.0.1进行连接?@Jeff是的,您需要在一台或多台计算机上运行两个应用程序。agh ok问题得到解决,直到我尝试从另一台计算机连接。希望它能起作用。非常感谢。它不允许我自己ping=)ping也不是TCP。Ping是ICMP(它没有端口的概念)。k我现在没有启用telnet,我将尝试从另一台机器连接,看看它是否工作。谢谢你的帮助