博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
listen&accept函数
阅读量:7221 次
发布时间:2019-06-29

本文共 531 字,大约阅读时间需要 1 分钟。

hot3.png

listen:

在服务器端bind socket的fd之后会call一个listen函数,这个函数有什么作用:

这个函数说明客户端连接请求队列能容纳的连接数,当server一个个的处理连接时候可能会同时又有其他连接请求,TCP链接是个过程,可能存在半链接状态,如果链接太多就会有链接未能及时处理的请求,那么这些个请求就被放到一个队列中去,等待处理。那这个队列不能无限大所以用listen说明这个准备好的队列可以最多容纳多少个连接数,当然这个数值的设定在系统设置的范围内,一般小于30。当一次性爆发100个请求,而listen函数设置为5那么也就只有5个请求可能保持在队列里等候处理。

accept:

这个函数会把上面listen过的fd作为参数,这个函数在内核中首先创建一个新的struct socket然后复制fd中的部分信息,这时候socket里面已经有刚刚listen的队列了,首先先检测socket的监听状态,然后检测请求队列是不是NULL,如果不是NULL,取出第一个处理,如果为NULL那就睡觉休息直到有请求进来把它唤醒。他主要就看守请求队列。

转载于:https://my.oschina.net/Jesuslovesyou/blog/279445

你可能感兴趣的文章
Linux挂载磁盘
查看>>
Cyclone II RAM ROM设置
查看>>
Ubuntu下实现伪静态
查看>>
python 二维数组遍历
查看>>
第8周课下作业1(补)
查看>>
阿萨斯
查看>>
service启动和停止,绑定和解除绑定
查看>>
elasticsearch开机启动脚本
查看>>
window service 恢复选项卡设置
查看>>
车辆管理系统之编码过程总结(十一)
查看>>
基于AOE网的关键路径的求解
查看>>
2017-5-16 python标准库
查看>>
浅谈游戏的声音处理-流播放文件 source
查看>>
旧版本转换成支持ARC版本
查看>>
创建与服务器的输入输出流
查看>>
string.hのmemmove的实现
查看>>
dicom网络通讯入门(1)
查看>>
日常训练.jpg
查看>>
iOS----KVC和KVO 详解
查看>>
2019寒假训练营第三次作业
查看>>