文档详情

《Socket函数集》.pdf

发布:2015-10-05约2.83万字共38页下载文档
文本预览下载声明
Linux Socket 函数集 目录 Bind 3 Connect 5 Endprotoent 8 Endservent 9 Getsockopt 10 Htonl 11 Htons 12 Inet_addr 13 Inet_aton 14 Inet_ntoa 15 Listen 16 Ntohl 20 Ntohs 21 Recv 22 Recvfrom 23 Recvmsg 26 Send 27 Sendmsg 28 Sendto 30 Setprotoent 33 Setservent 34 Setsockopt 35 Shutdown 36 Socket 37 HZC Reserved 1 Linux Socket 函数集 Accept accept (接受socket 连线) 相关函 socket,bind ,listen,connect 数 表头文 #includesys/types.h 件 #includesys/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() 。 HZC Reserved 2 Linux Socket 函数集 Bind bind (对socket 定位) 相关函 socket,accept ,connect ,listen 数 表头文 #includesys/types.h 件 #includesys/socket.h 定义函 int bind(int sockfd,struct sockaddr * my_addr,int addrlen); 数 函数说 bind()用来设置给参数sockfd 的socket 一个名称。此名称由参数 明 my_addr 指向一sockaddr 结构,对于不同的socket domain 定义了一 个通用的数据结构。 struct sockaddr { unsigned short int sa_family; char sa_data[14]; }; sa_family 为调用socket ()时的domain 参数,即AF_xxxx 值。
显示全部
相似文档