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()。
bind(对 socket 定位)
相关函数 socket,accept,connect,listen
表头文件 #include<sys/types.h>
#include<sys/socket.h>
定义函数 int bind(int sockfd,struct sockaddr * my_addr,int addrlen);