实现client和server之间的tcp连接,同步的。要求client能够模拟每秒同时100个用户连接server的情况。
我是这么实现的:开启一个定时器,每秒执行一次以下代码:
AfxBeginThread(Proc,NULL);UNIT slirSyncProc(LPVOID)
{
    for(i=0;i<100;i++)
    {
        socket();
        if(connect() == SOCKET_ERROR
        {
            closesocket();
            return 1;
        }
        send();
        int nRet=1;
        while(nRet>0)
        {
            nRet = recv();
        }
        closesocket();
        return 1;
}
问题一:不知道上述过程会不会产生内存泄漏?关于多线程如何检查其是否内存泄漏?
问题二:如果server在某个时候down了,client就会有很多线程阻塞在recv()这里,该如何解决这个问题?

解决方案 »

  1.   

    开启一个定时器,每秒执行一次以下代码:
    AfxBeginThread(Proc,NULL);--这样子并不合适,应该先创建好你要的100个连接的线程,并设置为休眠.
    等你要用的时候再唤醒线程,这样子要快得多,也就是说创建线程花的代价比较高.线程运行完了会自动退出.
      

  2.   

    建议看看<深入浅出MFC>上多线程的讲解
      

  3.   

    同意Turelies(天堂鸟) ,一次创建完县城,用suspendthread停下,resumethread唤起。