我在做SERVER时正常情况下运行正常,做压力测试时,如果客户端多个连接发送速度很快,SERVER会来不及应答,程序会出现错误,该怎么解决。
我的具体情况是创建了CWinThread线程
在InitInstance()中监听
while(TRUE)
{
    try
    {
bind...
         listen......
         accept.....
             处理
     }
     ......
}

解决方案 »

  1.   

    如果是tcp,就用完成端口来做
      

  2.   

    你不能这样做,很难处理。这样做能好些,系统启动时,开启5-10个线程,其中,一个监听线程,只负责监听端口,其他为客户端处理线程。监听线程收到一个CLIENT连接后,将连接加入队列,其他线程检测到队列有连接信息,第一时间取得连接信息,清空队列,进行处理,这样的速度快的多,另外如果你的CLIENT比较多,可以开始先建立10个,当当前空闲线程少于某个数时,再开启10个,这样保证你能够简单的应付短连接的C/S结构处理。
      

  3.   

    你的线程处理中是否采用了互斥,这样会造成连接等待,可以通过setsockopt函数设置发送和接收延时。