为什么我的C#连接了一次后就怎么也连接不上?代码如下:
 public class Receive
    {
        public byte[] buffer = new byte[1024];        public ManualResetEvent socketEvent = new ManualResetEvent(false);
        public Socket sListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        public Socket handler = null;        public void receive()
        {
            try
            {
                byte[] bytes = new byte[1024];                IPAddress ipAddr = IPAddress.Parse("192.168.2.100");
                int Port = 10023;                IPEndPoint EPServer = new IPEndPoint(ipAddr, Port);
 
                sListener.Bind(EPServer); 
                sListener.Listen(10);                while (true)
                {
                    if (handler == null)
                    {
                        sListener.BeginAccept(new AsyncCallback(AcceptCallback), sListener);
                        socketEvent.WaitOne();
                        handler.BeginReceive(buffer, 0, buffer.Length, 0, new AsyncCallback(ReceiveCallback), handler);
                        socketEvent.WaitOne();
                    }
                    else
                    {
                        socketEvent.Reset();
                        handler.BeginReceive(buffer, 0, buffer.Length, 0, new AsyncCallback(ReceiveCallback), handler);
                        socketEvent.WaitOne();
                    }
                }
            }
            catch (Exception e)
            {
                ;
            }
        }
        public void AcceptCallback(IAsyncResult ar)
        {
            try
            {
                Socket listener = (Socket)ar.AsyncState;
                handler = listener.EndAccept(ar);
                handler.BeginReceive(buffer, 0, buffer.Length, 0, new AsyncCallback(ReceiveCallback), handler);
            }
            catch (Exception e)
            {
                ;
            }
        }
        public void ReceiveCallback(IAsyncResult ar)
        {
            try
            {                string content = String.Empty;
                handler = (Socket)ar.AsyncState;                int bytesRead = handler.EndReceive(ar);
                UnicodeEncoding ue = new UnicodeEncoding();
                content += ue.GetString(buffer);                D160A.Receive.writeQDLog("socket", content);                if (content.LastIndexOf('|') > -1)
                { 
                      D160ALib.queuePhone qphone = new D160ALib.queuePhone();
                      qphone.queueSocket = handler;                      qphone.queueString = content;
                      D160A.Form1.qp.Add(qphone);
                }
            }
            catch (Exception e)
            {
                 sListener.BeginAccept(new AsyncCallback(AcceptCallback), sListener);
            }
        }
}