日期:2014-05-20  浏览次数:20758 次

socket通信中的accept(),不好理解
socket通信中的accept(),不好理解,为什么在帮助中说是要新建一个socket?

------解决方案--------------------
accetp是在等待一个握手,是在listen的socket等的。

等到后就需要socket来处理接收与发送,而listen的socket还是在继续听。

为了不冲突,所以要新建一个
------解决方案--------------------
等待接收客户端连接,一旦有连接就返回,这是可以新建一个socket处理客户端数据,原socket可以继续listen
------解决方案--------------------
想想一个服务器可能要为多个客户端服务就对了
------解决方案--------------------
一般我们设计服务器端的时候,都会创建一个socket做为侦听器(listener),用accept()方法负责接受客户端的连接请求。accept()方法在接受客户端A的连接请求后,会产生出一个新的socket出来,负责与客户端A进行数据收发工作。而listener继续等待另一些客户端的连接请求。

好比我们去一家大酒楼,门口总有一个迎宾,负责开门让你这个客户进去,你进去大酒楼后,会有一个待应带你去找座位和点餐。这个迎宾相当于listener,为你服务的待应就是accept()创建出来的socket。