你侦听的时候要另开一个线程,在主线程里你肯定是一直看到忙碌的!去MSDN查查线程怎么用!

解决方案 »

  1.   


    /// 开始服务
    /// </summary>
    public void start()
    {
    listenerThread = new Thread(new ThreadStart(SendData));
    listenerThread.Start();
    }
    /// <summary>
    /// 接收数据
    /// </summary>
    protected void SendData()
    {
    try
    {
    IPAddress localAddr = IPAddress.Parse(address);
    IPEndPoint iep=new IPEndPoint(localAddr,port);
    socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); socket.Bind(iep);  
    while(!stop)
    {
    byte[] m_ReceiveBuffer = new byte[256];
    socket.Listen(10);
    Socket newsocket = socket.Accept();
    newsocket.Receive(m_ReceiveBuffer,0,m_ReceiveBuffer.Length,SocketFlags.None);
    m_Test = Encoding.ASCII.GetString(m_ReceiveBuffer);
    list.Add("Receive Messages:  "+m_Test);
    newsocket.Close();
    }
    }
    catch(SocketException e)
    {
    throw new Exception(e.ToString());
    }
    }
      

  2.   

    在侦听的循环里最后一行添加:
    Thread.Sleep(100);