0

我有以下问题。socket.Bind()我尝试通过该功能连接套接字。但它总是抛出。我猜是因为它从

IPHostEntry ipHe = Dns.GetHostEntry(Dns.GetHostName());

功能。我认为这个问题是由我的静态 IP 引起的。Ipconfig /all显示我109.90.xxx.xxx的 Ip 和程序获得的 Ip 是192.168.xxx.xxx.

它抛出的错误是“请求的地址在其上下文中无效”

4

2 回答 2

0

与您的主机关联的 IP 地址可能不止一个。尝试遍历返回的 IP 地址列表。

foreach (IPAddress ip in ipHe.AddressList)
{
    Console.WriteLine("    {0}", ip);
}
于 2012-12-05T14:58:21.853 回答
0

Dns.GetHostEntry查询DNS,所以那里可能是错误的。从命令提示符nslookup {your hostname}返回什么?

基本上,没有什么可以阻止 DNS 和您的本地计算机失步。这可能是故意的,也可能表明存在问题,具体取决于您的本地网络要求和配置。

为了获得独立于 DNS 的本地 IP 地址,您需要直接查询接口:查看System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces(),然后您可以枚举并调用GetIPProperties()每个接口,它返回多播和单播 IP 地址。

于 2012-12-05T14:58:51.383 回答