public void Listen(int port)
{
  ...//The Code to Listening
}public void Fun()
{
  Thread thd_1 = new Thread(Listen(8080));
  Thread thd_2 = new Thread(Listen(8081));
  Thread thd_3 = new Thread(Listen(8082));
  thd_1.Start();
  thd_2.Start();
  thd_3.Start();
  //Do Sth...
  thd_1.Abort();
  thd_2.Abort();
  thd_3.Abort();
}代码是肯定错误的,这只是伪代码而已,希望能帮你提供想法

解决方案 »

  1.   

    应该这样更好public void Listen(Socket sock)
    {
    ...//The Code to Listening and receive
    }while (true)
    {
        Socket socket = tcpListener.AcceptSocket();
        Thread thd = new Thread(Listen(socket));
        thd.Start();
        ThreadList.add(thd);
        if (??)
            //all the thread in ThreadList abort
            break;
    }
      

  2.   

    简单一些的,一个线程监听一个端口,使用异步BeginAccept接收端口连接。
    也可以使用一个线程监听多个端口,使用异步BeginAccept接收端口连接。
    如果端口比较多,就要用多线程监听。