...accept  
 
 
 

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 核心内存不足。
 

 
 

                                Linhan 2005 ShenZhen
 

范例:

参考listen()。