在阻塞模式下没问题,这个问题是在非阻塞模式下(socket.Blocking = false;//设置为非阻断模式) 
请问一下这是为什么啊?
System.Net.Sockets.SocketException: 无法立即完成一个非阻挡性套接字操作。 
我是客户端部分代码,是不是客户端不能设置为非阻塞模式啊

解决方案 »

  1.   

    socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp);
    socket.SetSocketOption (SocketOptionLevel.Socket,SocketOptionName.SendTimeout, 1000);
                socket.Blocking = false;//设置为非阻断模式
                IPAddress ipAdd = IPAddress.Parse(comboBox_remote_ip.Text);
    int port = System.Convert.ToInt32(sf.txtPort.Text);
    IPEndPoint hostEndPoint = new IPEndPoint(ipAdd, port);

    try
    {
    socket.Connect(hostEndPoint);
    }
    catch (Exception e)
    {
    Console.WriteLine(e.ToString());
                    this.statusBarPanel4.Text = "服务器状态:服务器未准备好";
                    richTextBox_connect.Text += "\n" + DateTime.Now.ToString() + "\n联机失败,请检查网络连接或IP设置。\n" + e.ToString();
    return;
    }