文档章节

listen&accept函数

小绿豆蛙
 小绿豆蛙
发布于 2014/06/13 14:50
字数 371
阅读 12
收藏 0
点赞 0
评论 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
博文 30
码字总数 13280
作品 0
海淀
程序员

暂无相关文章

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 1

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

Nginx + uwsgi @ubuntu

uwsgi 安装 sudo apt-get install python3-pip # 注意 ubuntu python3默认没有安装pippython3 -m pip install uwsgi 代码(test.py) def application(env, start_response): start_res......

袁祾 ⋅ 昨天 ⋅ 0

版本控制工具

CSV , SVN , GIT ,VSS

颖伙虫 ⋅ 昨天 ⋅ 0

【2018.06.19学习笔记】【linux高级知识 13.1-13.3】

13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

lgsxp ⋅ 昨天 ⋅ 0

LVM

LVM: 硬盘划分分区成物理卷->物理卷组成卷组->卷组划分逻辑分区。 1.磁盘分区: fdisk /dev/sdb 划分几个主分区 输入t更改每个分区类型为8e(LVM) 使用partprobe生成分区的文件:如/dev/sd...

ZHENG-JY ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部