accept 函数

 accept函数

头文件

<sys/types.h>

<sys/socket.h>

函数形式

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

返回值

成功

失败

是否设置errno

返回新的套接字文件描述符

−1

该函数的第一个参数指定处于监听状态的流套接字;

操作系统利用第二个参数来返回新创建的套接字的地址结构;

操作系统利用第三个参数来返回新创建的套接字的地址结构的长度。

本函数会阻塞等待直到有客户端请求到达。然后监听的sockfd就会创建返回一个新的套接字描述符,这个套接字指向第二个参数 addr,该结构赋予客户端的套接字,即客户端的ip和端口号。知道了客户端地址,然后就可以开始传输数据了,在面向连接中,有send(int sockfd,const void *msg,int len,int flags);其中这里的参数sockfd 就是新创建的套接字,也是客户端的地址(ip和port);recv()函数同样道理。

 

如还有疑问:可在评论中一起探讨。

你可能感兴趣的:(struct)