我用VC做一个服务器端的服务程序,运行在Dos环境下,当有客户端连接时,就启动一个单独的线程处理客户端的请求,如何实现,能给我一个大体的框架吗?===================================
附:
我原来的实现方式如下(用do...while 循环实现):  //前面的创建本地套接字等略去  listen(sock, 5);//监听端口
  do
  {    
     msgsock = accept(sock, (struct sockaddr *)&tcpaddr, (int *)&len);
    //接收连接
     if (msgsock == -1)
       printf("\nOne client connection has been refused");
     else 
      {
       //这里处理客户端的请求
       ...
      }
     closesocket(sock);
  }
  while(1);//无限循环,处理客户端请求

解决方案 »

  1.   

    accept之后创建线程,把msgsock传递给线程
      

  2.   

    fantiyu(fantiyu) 
    ====================
    设我的处理函数为:
    void process()
    {
      ...
    }那么用线程工作的流程或大致框架是怎么样的?
    可以给我说一下吗?
      

  3.   

    AfxBeginThread(Process,(LPVOID)msgsock)UINT Process( LPVOID pParam );
    在此线程内把.pParam 再还原成SOCKET 类型通过其,发送应答给CLIENTMSDN上有一个CHAT和CHATTER SERVER的程序,你可以看看.
      

  4.   

    freemam(tt) 
    按照你这么说,那用线程池怎么实现?可以给一个框架吗?