Socket.bind所有IPS - 一个无效的参数提供

问题描述:

我想用插座上绑定到所有的机器上可用的IP地址:Socket.bind所有IPS - 一个无效的参数提供

mainSocket.Bind(new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0)); //or IPAddress.Any 

,但我得到一个An invalid argument was supplied

mainSocket.IOControl(IOControlCode.ReceiveAll, byTrue, byOut); 

相反,当我指定IP时,它工作得很好。

enter image description here

好吧,也许这是不可能实现的。但如何检测哪些互联网接口正在用于连接到互联网,并获得它的IP? (假设用户在NAT /路由器后面)

+0

你需要指定端点IP地址,因为你是用零的它并没有得到端点给人IP地址,因为与IP绑定套接字它需要特定的IP地址有一定的局限性和端口。 –

+0

检查此链接http://*.com/questions/4146885/socket-bind-returns-the-requested-address-is-not-valid-in-its-context-on-win –

+0

我知道,但绑定到所有的IP呢? – technology

我认为这是不可能的。 与插座操作根据该文件 TCP/IP Raw Sockets