函数accept
函数功能:
TCP服务器依次调用socket(),bind(),listen()之后,就会监听指定的socket地址;TCP客户端在依次调用socket(),connect()之后就会向TCP服务器发送一个连接请求。TCP服务器在监听到这个请求之后,就会调用accept函数取接收请求,这样连接就建立好了。之后就可以开始网络I/O操作了,即类同于普通文件的读写I/O操作。
函数原型:
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
sockfd:服务器的socket描述符
addr:指向struct sockaddr的指针,用于返回客户端的协议地址
addr:返回协议地址的长度
返回值:
返回的是已连接的socket描述符。一个服务器通常只创建一个监听socket描述符,它在该服务器的生命周期一直存在。内核为每个由服务器进程接受的客户端连接创建了一个已连接socket描述符,当服务器完成了对某个客户的服务,相应的已连接socket描述符就被关闭。