accept函数
1.什么是accept函数?作用是什么?
accept是一个常用于网络编程的函数,它的作用是使服务器端接受客户端的连接请求。当建立连接后,服务器端就可以和客户端进行收发数据。要想使用accept函数,需要包含如下头文件:
#include <sys/types.h>
#include <sys/socket.h>
2.accept函数定义
int accept (int sockfd, struct sockaddr *addr, socklen_t *addrlen);
其中,sockdf代表已被绑定的socket 文件描述符;addr用于存储客户端的IP地址和端口号等信息;
addrlen用于存储地址结构的长度,即传入sizeof (addr) 。若执行成功,accept函数返回一个新的socket 文件描述符,失败返回-1。
3.举例
#include <sys/types.h>
#include <sys/socket.h>
int mian(void){
struct sockaddr_in client; #定义一个客户端的sockaddr_in结构体
client_len=sizeof(client); #求取地址结构的长度
int sock=socket(AF_INET,SOCK_STREAM,0); #获取套接字的文件描述符,这里不懂可以看网络通讯基础(3)
int client_sock=accept(sock,(struct sockaddr *)&client,&client_len);
}
值得注意的是,当服务器调用accept函数,若此时还没有客户端的连接请求,就会阻塞等待直到有客户端连接上来。
好了讲到这里,非常感谢各位观众老爷的观看,我们一起学习一起进步!