IPHostEntry ipHost = Dns.Resolve("192.168.182.1");
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 14372);
wSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
wSocket.Bind(ipEndPoint);
这是我创建套接字连接的方法。如您所见,手动设置主机IP。但是如何自动获得它呢?我不想为不同的网络重新编译我的应用程序......
答案 0 :(得分:1)
来自MSDN上的Socket.Bind:
如果您不关心分配了哪个本地地址,则可以创建一个
IPEndPoint
使用IPAddress.Any
作为地址参数,并使用Socket.Bind
底层服务提供商将分配最合适的网络 地址。如果有,这可能有助于简化您的应用程序 多个网络接口。
Any
方法使用Socket
字段来表示Any
实例必须在所有网络接口上侦听客户端活动。0.0.0.0
字段相当于点分四位表示法中的IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 14372);
。
因此,您只需用以下内容替换前三行:
{{1}}