日期:2014-05-18  浏览次数:20771 次

【在线等】【急】求助啊,异步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。