ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## accept ## 接受socket连线 ### 相关函数 ### socket,bind,listen,connect ### 表头文件 ### ``` #include<sys/types.h> #include<sys/socket.h> ``` ### 定义函数 ### ``` int accept(int s, struct sockaddr *addr, int *addrlen); ``` ### 函数说明 ### accept()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen()函数处理过,当有连线进来时accept()会返回一个新的socket处理代码,往后的数据传送与读取就是经由新的socket处理,而原来参数s的socket能继续使用accept()来接受新的连线要求。连线成功时,参数addr所指的结构会被系统填入远程主机的地址数据,参数addrlen为scokaddr的结构长度。关于结构sockaddr的定义请参考bind()。 ### 返回值 ### 成功则返回新的socket处理代码,失败返回-1,错误原因存于errno中。 ### 错误代码 ### EBADF 参数s 非合法socket处理代码。 EFAULT 参数addr指针指向无法存取的内存空间。 ENOTSOCK 参数s为一文件描述词,非socket。 EOPNOTSUPP 指定的socket并非SOCK_STREAM。 EPERM 防火墙拒绝此连线。 ENOBUFS 系统的缓冲内存不足。 ENOMEM 核心内存不足。 ### 范例 ### 参考listen()。