C# TcpListener.Start()上的SocketException

C# TcpListener.Start()上的SocketException,c#,sockets,networking,socketexception,C#,Sockets,Networking,Socketexception,我试图创建一个基本的客户机/服务器程序,但当我启动TcpListener时,它会给我一个SocketException:请求的地址在其上下文中无效。 实际上,我有一个方法返回我的公共IP,它匹配ipconfig结果,所以下面的IP地址字符串不会是问题所在。当然,出于安全原因,下面显示的IP不是我的真实IP。我打开了下面的端口以供一般使用。 无论如何,在上下文中无效是模糊的,所以我不确定这是什么意思 这是我的代码(用于TcpListener): 提前感谢。TcpListener只能绑定到运行它的计

我试图创建一个基本的客户机/服务器程序,但当我启动TcpListener时,它会给我一个
SocketException:请求的地址在其上下文中无效。

实际上,我有一个方法返回我的公共IP,它匹配ipconfig结果,所以下面的IP地址字符串不会是问题所在。当然,出于安全原因,下面显示的IP不是我的真实IP。我打开了下面的端口以供一般使用。
无论如何,
在上下文中无效
是模糊的,所以我不确定这是什么意思

这是我的代码(用于TcpListener):


提前感谢。

TcpListener只能绑定到运行它的计算机的本地IP地址。因此,您指定的IP不是本地计算机的IP。您的公共IP与您的本地计算机的IP不同,尤其是在使用某种NAT的情况下


如果我没记错的话,通常只需将IPAddress.Any作为您的IP来初始化侦听器。

TcpListener只能绑定到运行它的计算机的本地IP地址。因此,您指定的IP不是本地计算机的IP。您的公共IP与您的本地计算机的IP不同,尤其是在使用某种NAT的情况下

如果我没记错的话,通常只需使用IPAddress.Any作为您的IP来初始化侦听器。

如中所述

IPAddress—表示IP地址的IP地址 本地IP地址

所以它必须是一个本地IP地址

如中所述

IPAddress—表示IP地址的IP地址 本地IP地址


所以它必须是一个本地IP地址

好的,我的地址。任何一个都有效。谢谢好的,我的地址。任何一个都有效。谢谢
ServerIn = new TcpListener(IpAddress.Parse("100.100.100.100"), 8000);
ServerIn.Start();