TcpListener.Start()上的SocketException

时间:2013-06-13 16:46:03

标签: c# sockets networking socketexception

我正在尝试创建一个基本的客户端/服务器程序,但是当我启动TcpListener时它会给我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();

提前致谢。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

正如MSDN about TcpListener

所述
  

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

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