linux的accept函数源码,accept函数
13.2.5 accept函数
处于监听状态的服务器在获得客户机的连接请求后,会将其放置在等待队列中。当系统空闲时,将接受客户机的连接请求。接收客户机的连接请求使用accept函数,该函数的具体信息如表13.6所示。
表13.6 accept函数
头文件
函数形式int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
返回值成功失败是否设置errno
返回新的套接字文件描述符−1是
说明:
accept函数用于面向连接类型的套接字类型(SOCK_STREAM和SOCK_SEQPACKET)。accept函数将从连接请求队列中获得连接信息,创建新的套接字,并返回该套接字的文件描述符。新创建的套接字用于服务器与客户机的通信,而原来的套接字仍然处于监听状态。
accept函数的sockfd参数为监听的套接字描述符。addr参数为指向结构体sockaddr的指针。参数addrlen为addr参数指向的内存空间的长度。
错误信息:
EAGAIN:套接字处于非阻塞状态,当前没有连接请求。
EBADF:非法的文件描述符。
ECONNABORTED:连接中断。
EINTR:系统调用被信号中断。
EINVAL:套接字没有处于监听状态,或非法的addrlen参数。
EMFILE:达到进程打开文件描述符限制。
ENFILE:达到打开文件数限制。
ENOTSOCK:文件描述符为文件的文件描述符。
EOPNOTSUPP:套接字类型不是SOCK_STREAM。
linux的accept函数源码,accept函数相关推荐
- accept函数源码分析
我们在应用层调的accept函数.在调用这个函数之前我们先拿到socket和sock两个互相关联的结构体,底层执行顺序 1 执行socket.c的sock_accept,分配一个新的socket结构体 ...
- 【Linux 内核】实时调度类 ⑦ ( 实时调度类核心函数源码分析 | dequeue_task_rt 函数 | 从执行队列中移除进程 )
文章目录 一.dequeue_task_rt 函数 ( 从执行队列中移除进程 ) 二.update_curr_rt 函数 ( 更新调度信息 ) 本篇博客中 , 开始分析 struct sched_cl ...
- 【Linux 内核 内存管理】mmap 系统调用源码分析 ④ ( do_mmap 函数执行流程 | do_mmap 函数源码 )
文章目录 一.do_mmap 函数执行流程 二.do_mmap 函数源码 调用 mmap 系统调用 , 先检查 " 偏移 " 是否是 " 内存页大小 " 的 & ...
- 【Linux 内核】实时调度类 ⑥ ( 实时调度类核心函数源码分析 | 插入进程到执行队列 | 从执行队列中选择优先级最高的进程 )
文章目录 一.enqueue_task_rt 函数 ( 插入进程到执行队列 ) 二.pick_next_task_rt 函数 ( 从执行队列中选择优先级最高的进程 ) 本篇博客中 , 开始分析 str ...
- 【Linux 内核 内存管理】物理分配页 ⑨ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | retry 标号代码分析 )
文章目录 一.retry 标号代码分析 二.retry 标号完整代码 在 [Linux 内核 内存管理]物理分配页 ② ( __alloc_pages_nodemask 函数参数分析 | __allo ...
- 【Linux 内核 内存管理】物理分配页 ⑦ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | 判断页阶数 | 读取 mems_allowed | 分配标志位转换 )
文章目录 一.__alloc_pages_slowpath 慢速路径调用函数 二.判断页阶数 三.读取进程 mems_allowed 成员 四.分配标志位转换 五.__alloc_pages_slow ...
- 【Linux 内核 内存管理】物理分配页 ⑧ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | 获取首选内存区域 | 异步回收内存页 | 最低水线也分配 | 直接分配 )
文章目录 一.获取首选内存区域 二.异步回收内存页 三.最低水线也分配 四.直接分配内存 在 [Linux 内核 内存管理]物理分配页 ② ( __alloc_pages_nodemask 函数参数分 ...
- c语言strtok函数源码,C语言_strtok函数源代码分析及扩展
2019独角兽企业重金招聘Python工程师标准>>> 今天在看strtok函数源码时,发现有点绕,就将源码的处理思想以图示的方式展现给大家,希望可以帮助大家. strtok函数 c ...
- OpenCV resize函数源码解析——加速方法
相信大家应该经常会用到OpenCV中的函数resize(),当我们想放大或者缩小图像的时候,会用到这个函数进行图像缩放,其中最核心的便是对图像的像素进行插值处理. 这里的插值interpolation ...
最新文章
- 国内哪里培训python比较好-python培训哪家机构比较好?
- Xap packaging failed , Object reference not set to an instance of an object.
- Leetcode5635. 构建字典序最大的可行序列[C++题解]:dfs暴搜
- java sftp 实例_JAVA实现SFTP的实例
- python的django介绍_【Python基础知识】Django框架简介
- IJKMediaFramework框架的集成和使用实例一枚
- 魅族17 Pro通过3C认证:魅族史上最强快充
- Android 关机流程 从kernel到framework
- wamp mysql中文_解决wampServer 中MySQL插入中文乱码问题
- 项目管理甘特图模板_甘特图简易制作流程
- mid、mif文件转shapefile、geojson等格式的数据
- Mysql开发实践:error while loading shared libraries: libaio解决方案
- Foundation框架之字符串和日期
- 【免费赠送源码】Springboot剧本杀交流分享平台1p7vg计算机毕业设计-课程设计-期末作业-毕设程序代做
- win7桌面计算机丢失,windows7电脑系统文件丢失怎么办
- 根据输入的银行卡号显示开户银行类型,并将银行卡号四位分隔
- js base64加密 java base64解密_JS base64 加密和 后台 base64解密(防止中文乱码)
- 【Java】Java中文分词器Ansj的使用
- VBA学习(一)启用VBA、变量、常量、静态变量、字符串拼接、循环语句与判断语句
- 硅芯思见:“软约束”到底有多“软”
热门文章
- 【洛谷比赛】你的名字。
- asp.net 使用Master模板页需要注意
- Gtk-WARNING **: 无法在模块路径中找到主题引擎:“pixmap”(转)
- 简单的Client / Server 使用 linux 伯克利 socket实现
- NSDateFormatter设定日期格式
- 自定义组件--创建mxml组件
- Redis之整数集合intset
- STL中的multimap---顺便说说如何查找同一关键字对应的所有值
- 看完这篇文章,会让你对电容的作用更明白!
- 一位跟我一样疑惑的同学~