源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-01-12 09:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:详解C语言中accept()函数和shutdown()函数的使用
[b]C语言accept()函数:接受socket连线 [/b]头文件:
#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 核心内存不足. [b]C语言shutdown()函数:终止socket通信 [/b]头文件:
#include <sys/socket.h>
定义函数:
int shutdown(int s, int how);
函数说明:shutdown()用来终止参数s 所指定的socket 连线. 参数s 是连线中的socket 处理代码, 参数how有下列几种情况: [list] [*]   how=0 终止读取操作.[/*] [*]   how=1 终止传送操作[/*] [*]   how=2 终止读取及传送操作[/*] [/list] 返回值:成功则返回0, 失败返回-1, 错误原因存于errno. 错误代码: 1、EBADF 参数s 不是有效的socket 处理代码 2、ENOTSOCK 参数s 为一文件描述词, 非socket 3、ENOTCONN 参数s 指定的socket 并未连线
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部