日期:2014-05-16  浏览次数:20648 次

select连接问题~ 有点一直搞不明白~
*************************   引用   **********************************

使用select后我们的服务器程序就变成了.    


      初始话(socket,bind,listen);        
        while(1)  
      {  
                设置监听读写文件描述符(FD_*);        
                调用select;  
                如果是倾听套接字就绪,说明一个新的连接请求建立   //?我们只能判断可读
                                                                                                          //如果可读怎么知道是
                                                                                    //一个新的连接还是客户来的数据呢
              {    
                                建立连接(accept);  
                                加入到监听文件描述符中去;  
              }  
              否则说明是一个已经连接过的描述符  
              {  
                                        进行操作(read或者write);  
                }                                      
      }                                
**********************************************************************

我现在是在做多个客户与服务器连接~      
在服务器端~   首先在主函数里不停的监听srvSock套接口~
如果有客户连接那么我再创建一个服务线程~专门为这个客户服务~
main()
{
          timevalue   tv   =   {0,0};
            while(1)
            {
                  cout   < <   "wait   client   to   connect.... "   < <   endl;
                  if(   select(srvSock+1,   NULL,   NULL,   &tv   )   >   0   )  
                  {
                            if(     FD_ISSET(srvSock,   &readSet)   )
                            {