循环打开的Socket太多了.
while(testing==true)
{
   Socket temp_sock=listener.AcceptSocket();
   ....
}用Pending轮寻是否有挂起的Socket.关闭一些挂起的Socket.

解决方案 »

  1.   

    用TcpClient client = listener.AcceptTcpClient();试试!
      

  2.   

    Socket比client功能强大,是不是消耗也大得多呢?我用windwos 2000server的任务管理器查看到出现问题时,内存消耗并不大。如果用Socket有没有个数和的限制?我的每个线程都写入到DataGrid中,应该是每个线程的数据占用一行,应该不会冲突吧!
      

  3.   

    另,当出现问题时,我的显示正常的DATAGRID出现一个大红叉!
      

  4.   

    你可以线程池吧,
    另外把你的工作线程写成一个类,改类有一个socket变量,和一个void()的函数好好研究一下这片msdn的文章
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconthreadpooling.asp