这个就是用一个线程侦听10个Socket连接。
for(int k=1;k<thID*10;k++)
{
bool keepAlive=true;
//开始此实例的循环接受数据
while (keepAlive)
{
if (flashSocket[k].Poll(-1, SelectMode.SelectRead))
{
#region 接收数据的代码
}
}如上,每次有数据的时候为什么k都为1呢?
能不能留下邮箱?我把代码发给你,帮我看一下呢?

解决方案 »

  1.   

    如果没中文,发这里[email protected]我先给你看下问题,wait...
      

  2.   

    你现在的解决方案是不是用一个大队列线程1处理 0-9线程2处理 10-19……………………是不是这样处理的,那个K必须变化的。如何变化要取决于线程的名字,也就是你给的ID
      

  3.   

    我去sina看看你的代码,wait。。
      

  4.   

    myDaoGouServer这个是。NET的线程主方法currentID = 1 在小于100个socket的情况 只这一个线程处理就好了如果 socketID除100加1   大于  currentID 则currentID++这时候再启动新线程,如subThread[currentID].Start();这么说你可否理解?还是。NET对线程的控制好一些,不过一要使用java我可以给你设计一下线程模型,跑1000个人聊天没问题。
      

  5.   

    勽好呀!我没有收到邮件。可以再给我发一次吗?谢谢![email protected]
      

  6.   

    我这里没有。NET的环境,JDK还是有的。java的代码你要是有,我肯定可以帮你改我只能和你说说思路
      

  7.   

    currentID++这时候再启动新线程,如subThread[currentID].Start();这些我都明白了。我现在最不明白的就是:
    比如启动这个线程subThread[2]后。
    这时又有一个新的Socket如ID=120进来。那么,这个线程subThread[2]是不是还要再.Start()一次呢?
      

  8.   

    不用再.Start()一次{如果 socketID除100加1   大于  currentID} --- 只有在这种情况下 才需要启动新线程其他的情况是不需要启动新线程的
      

  9.   

    好的。谢谢美女哈。我再试试。不行我还要再找你呀!*…—*Y*(—…*—YThank You Very Much!
      

  10.   

    http://community.csdn.net/Expert/topic/4396/4396256.xml?temp=4.450625E-02original feedback is here,blabla, hehe ,come on and check it out