欢迎来到入门教程网!

C语言

当前位置:主页 > 软件编程 > C语言 >

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

来源:本站原创|时间:2020-01-10|栏目:C语言|点击:

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 并未连线

上一篇:C++中赋值运算符与逗号运算符的用法详解

栏    目:C语言

下一篇:C++条件语句和条件运算符的使用方法讲解

本文标题:详解C语言中accept()函数和shutdown()函数的使用

本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/2761.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有