详解C语言中accept()函数和shutdown()函数的使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

详解C语⾔中accept()函数和shutdown()函数的使⽤C语⾔accept()函数:接受socket连线
头⽂件:
#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 中.
错误代码:
1、EBADF 参数s ⾮合法socket 处理代码.
2、EFAULT 参数addr 指针指向⽆法存取的内存空间.
3、ENOTSOCK 参数s 为⼀⽂件描述词, ⾮socket.
4、EOPNOTSUPP 指定的socket 并⾮SOCK_STREAM.
5、EPERM 防⽕墙拒绝此连线.
6、ENOBUFS 系统的缓冲内存不⾜.
7、ENOMEM 核⼼内存不⾜.
C语⾔shutdown()函数:终⽌socket通信
头⽂件:
#include <sys/socket.h>
定义函数:
int shutdown(int s, int how);
函数说明:shutdown()⽤来终⽌参数s 所指定的socket 连线. 参数s 是连线中的socket 处理代码, 参数how有下列⼏种情况: how=0 终⽌读取操作.
how=1 终⽌传送操作
how=2 终⽌读取及传送操作
返回值:成功则返回0, 失败返回-1, 错误原因存于errno.
错误代码:
1、EBADF 参数s 不是有效的socket 处理代码
2、ENOTSOCK 参数s 为⼀⽂件描述词, ⾮socket
3、ENOTCONN 参数s 指定的socket 并未连线。

相关文档
最新文档