我用socket类编的服务器端的循环监听程序,但是每次接受一次数据后,服务端窗体就会死机状态,如果把这个函数放到按钮单击事件中,并把while去掉!接受一次数据,单击一次按钮就没有这个现象,请问为什么用while循环监听就出现窗体没有响应,一动就一片空白了。
 private void beginLisen()
    {
        bool done=true;                IPAddress ip = IPAddress.Parse("127.0.0.1");
                IPEndPoint ipe = new IPEndPoint(ip, 11000);
                while (done)
                {
                    Socket s2 = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp);
                    s2.Bind(ipe);
                    s2.Listen(10);
                    Socket s1 = s2.Accept();
                    byte[] be = new byte[1024];
                    string data = null;
                    int s = s1.Receive(be, be.Length, 0);
                    data += Encoding.ASCII.GetString(be, 0, s);
                    textBox1.Text += data;
                    s2.Close();
                    s1.Shutdown(SocketShutdown.Both);
                    s1.Close();
                }