Socket 函数集(linux) 收藏 accept(接受socket 连线) 相关函数 socket,bind,listen,connect 表头文件 #include #include 定义函数 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()
bind(对 socket 定位) 相关函数 socket,accept,connect,listen 表头文#include 件 #include 定义函数 int bind(int sockfd,struct sockaddr * my_addr,int addrlen); 函数说明