《Linux函数调用手册》之___accept接受socket连线
定义:
int accept(int s,struct sockaddr * addr,int * addrlen);
表头文件:
#include<sys/types.h>
#include<sys/socket.h>
说明:
accept()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen()函数处理过, 当有连线进来时accept()会返回一个新的socket处理代码, 往后的数据传送与读取就是经由新的socket处理, 而原来参数s的socket能继续使用accept()来接受新的连线要求。连线成功时, 参数addr所指的结构会被系统填入远程主机的地址数据, 参数addrlen为scokaddr的结构长度。关于结构sockaddr的定义请参考bind()。
返回值:
成功则返回新的socket处理代码, 失败返回-1, 错误原因存于errno中。
相关函数:
socket, bind, listen, connect
错误代码:
EBADF 参数s 非合法socket处理代码。
EFAULT 参数addr指针指向无法存取的内存空间。
ENOTSOCK 参数s为一文件描述词, 非socket。
EOPNOTSUPP 指定的socket并非SOCK_STREAM。
EPERM 防火墙拒绝此连线。
ENOBUFS 系统的缓冲内存不足。
ENOMEM 核心内存不足。
示例:
参考listen()。
返回顶部 | 《Linux函数调用大全》 | 《Linux命令大全》 | Linux专栏