【在线等】【急】求助啊,异步tcp中使用了与请求的协议不兼容的地址。
private void Button2_Click(object sender, EventArgs e)
{
if (client == null)
{
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
if (!client.Connected)
{
IPEndPoint remoteep = new IPEndPoint(Dns.GetHostAddresses(Dns.GetHostName())[0], 11000);
AsyncCallback callback = new AsyncCallback(ConnectCallback);
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.BeginConnect(remoteep, callback, client);
//运行这行时候提示了“未处理 SocketExcepiton”使用了与请求的协议不兼容的地址。
}
}
如何修改啊,新手求教。谢谢啦、
------解决方案--------------------
不要胡乱使用 Dns.GetHostName()[0]。这里连ipv4都不能保证,更不能保证就是你要监听的所有地址。服务器端通常使用IPAddress.Any。