文档章节

listen&accept函数

小绿豆蛙
 小绿豆蛙
发布于 2014/06/13 14:50
字数 371
阅读 12
收藏 0

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那就睡觉休息直到有请求进来把它唤醒。他主要就看守请求队列。

© 著作权归作者所有

共有 人打赏支持
小绿豆蛙
粉丝 0
博文 33
码字总数 13280
作品 0
海淀
程序员
私信 提问

暂无文章

Linux如何查看进程、杀死进程、启动进程等常用命令

关键字: linux 查进程、杀进程、起进程 1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序。 ps -A 显示所有程序。 ps c 列出程序时,显示每个程...

临江仙卜算子
15分钟前
1
0
ASP.NET Core MVC 静态文件配置

在启动文件中添加以下配置 public class Startup{ public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddDirectoryBrowser(); ......

whltian
25分钟前
1
0
linux之自定义命令

本人使用的是ubuntu系统,不喜欢建各种桌面快捷链接,但是每次启动个软件,去查找又麻烦,所以自定义了命令,来快捷的启动应用: 1、修改/etc/bash.bashrc,在文件末尾,加上如下List-1中的内...

克虏伯
33分钟前
5
0
linux基础

系统安全 sudo su chmod setfacl 进程管理 w top ps kill pkill pstree killall 用户管理 id usermod useradd groupad userdel 文件系统 mount umount fsck df du 网络应用 curl telnet mail......

关元
34分钟前
5
0
Caffe-源码分析(一)

CHECK_X函数,用于比较两个blob之间的值 CHECK_EQ(x,y)<<"x!=y",EQ即equation,意为“等于”,当x!=y时,函数打印出x!=y。 CHECK_NE(x,y)<<"x=y",NE即not equation,意为“不等于”,,...

Pulsar-V
35分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部