看看下面的贴子中关于网络通讯多线程的例子。
http://topic.csdn.net/u/20080623/08/4bbd2475-45f1-42e3-a613-16b094759ade.html?62697

解决方案 »

  1.   

    客户端还要线程啊?
    客户端大多数都是连接服务器后
    用时就Send,最多就是使用SendAsync
      

  2.   

    有几个服务器,就要在客户端建几个socket连接.
      

  3.   

    通常是不是需要建异步SOCKET,这样是不是可以同时通讯?
      

  4.   

    同步是串行执行的,可能会阻塞.
    建议用异步,这样可以同时通讯.BeginConnect BeginReceive等.
      

  5.   

    用异步连接、异步接收,如果客户端还需要发送数据的话,可以用一个集合来存储当前已连接的Socket,要发送时再从集合中调用相应的Socket
      

  6.   

    异步的意思是不是就是我连接上了一个socket,利用这个socket进行数据传输的同时可以连接其他socket?另外我想问一下socket类和TcpClient类的联系和区别有哪些?
      

  7.   

     newsock.Listen(10);//同时可建立10个连接  这样就可以了
               
      

  8.   

    异步的意思是不是就是我连接上了一个socket,利用这个socket进行数据传输的同时可以连接其他socket?不是,异步是指你连接时不阻塞当前线程.你还是要用多个socket连接多个服务器,不是一个socket连多个服务器.
      

  9.   

    嗯,我知道的,要建立多个socket。是不是每个socket都要异步连接?譬如,我每个socket中都有一个发送线程和接收线程,是不是异步连接后这两个线程不会互相阻塞?
      

  10.   

    简单的思路
    1、为每个服务器创建一个线程
    2、线程中用同步方式操作socket异步不适合你
      

  11.   

    建议每个socket都要异步连接
    当然你要同步连接也可以,这样连接会阻塞当前线程.
    意思就是不管同步异步连接,其实跟你另外的发送接收线程关系不大.在一个主线程中,多个同步连接相当于是串行的,如果每个连接用10ms,10个同步连接共是100ms(用1个线程顺序执行);
    如果是异步,10个连接共10ms(用10个线程同时执行,当然线程池优化可能用不到10个线程).异步意思就等于.net自动创建线程帮你执行了同步连接,不同的线程执行所以不会阻塞(卡).
      

  12.   


    将PC作为客户端,服务器端是40个嵌入式系统,现在需要将40个服务器的数据采集上来在PC界面上显示出来,另外PC也要能够发设置参数给服务器,都是由PC发起连接请求的