一个处于监听的socket是在accept另一个socket的连接时被占用还是在accept后和另一个socket进行connect时才被占用?

解决方案 »

  1.   

    处于服务端的SOCKET是在ACCEPT成功后被占用;而处于客户端的SOCKET是在CONNECT成功后被占用
      

  2.   

    那么如果要一个服务器要连接多个客户端的话,是否只要有一个客户端产生连接就产生一个新的socket来跟这个客户端进行连接而处于listen的那个socket仍然进行监听?如果需要新建一个socket,那么又该如何新建才能让这个新建的socket跟客户端连接上呢?
      

  3.   

    有一个客户端产生连接就产生一个新的socket来跟这个客户端进行连接而处于listen的那个socket仍然进行监听。新建一个SOCKET: 是ACCEPT函数侦听到客户端CONNECT时,自动建立的。(有点象复制本身)。当然它是已经和客户端连接上的。
      

  4.   

    服务器端处于listen的那个socket形成一个队列,存放它们听到的连接请求。这个队列记录着客户端连接请求就象他们已连接进来一样。当服务器sockets同意客户连接请求时,它形成一个新的socket去连接客户端,因此这个倾听连接能保持开放状态允许其他客户端请求。我现在的疑问就是如何从服务器端的那个socket的队列中取得各个客户端的信息,以达到区分不同客户端的目的,因为我想在服务器端向不同的客户端发送不同的信息,我如何从这个队列中取出各个客户端对应的socket?