TCP/IP,一个通信过程存在三个套接字对象,服务端与客户端分别提供的函数与功能,socket,accept,listen,connect,bind
一、在服务器和客户端的通信过程中,建立连接需要一对套接字,除了用来交换信息的套接字,服务器这一段还需要使用一个套接字用于监听,所以在通信过程中有3个套接字,1对+1个。
二、服务端的函数:
1、listen()函数并非是用于监听,而是用于设置监听上线:
分析:监听过程中无消息过来时会阻塞,但listen()没有阻塞运行。
listen(fd, 20):句柄fd最多可以同时建立20个连接。
listen函数给文件句柄设置同时建立连接的上限数(可以同时进行三次握手的客户端数量)
第一个参数是socket()函数返回的文件句柄
第二个参数是同时连接的上限数目,最大为128
返回值:
成功0
失败-1 error
2、accept函数阻塞等待客户端建立连接,成功的话返回一个建立了连接的套接字
第一个参数是socket()函数返回的文件句柄,而且一般是用来监听的那个套接字
第二个参数是出参,包含成功建立连接的那个客户端的地址结构
第三个参数是出参,包含成功建立连接的