SocketException on TcpListener.Start()

本文关键字:Start TcpListener on SocketException | 更新日期: 2023-09-27 18:18:10

我想做一个基本的客户端/服务器程序,但是当我启动tcpllistener时,它给了我SocketException:The requested address is not valid in its context.
我实际上有一个返回我的公共IP的方法,它匹配ipconfig结果,所以下面的IP地址字符串不可能是问题所在。当然,出于安全考虑,下面显示的IP不是我的真实IP。我打开了下面的端口供一般使用。
无论如何,Not valid in context是模糊的,所以我不确定这是什么意思。

下面是我的代码(TcpListener):

ServerIn = new TcpListener(IpAddress.Parse("100.100.100.100"), 8000);
ServerIn.Start();

SocketException on TcpListener.Start()

TcpListener只能绑定到运行它的计算机的本地IP地址。因此,您指定的IP不是本地机器的IP。您的公共IP与本地机器的IP不相同,特别是当您使用某种NAT时。

如果我没记错的话,通常只做IPAddress。

MSDN中关于TcpListener的规定

IPAddress-表示ip地址的IPAddress本地IP地址

所以它需要是本地IP地址。