在调用socket的时候,我们会使用到listen()函数,里面有个参数叫backlog, 例如:socket.listen(5). 那么这个数字5到底代表什么意思呢?

解答

下面使用具体的代码片段来讲解:

这是一个电脑本机模拟客服端及服务端的程序,主要功能是建立socket连接后,客户端输入关键字查询对应的段子,服务器端返回结果。

服务器可以满足同时服务两个客户的查询操作

此程序中还包含了信号量和多线程

以listen(1),参数设置为1进行讲解,是不是将参数设置为1后,开启3个客服连接就会报错呢?

并不是!如下图所示:

那么问题来了!

问题1:

如上例代码中,有listen(1),这个1是指什么?只能与1个socket建立链接吗? 为什么我用上面的代码可以创建大于1个的tcp连接却没报错,如果用网上其他人的说法理论上大于1个连接应该报错的!

因为:listen(n)传入的值, n表示的是服务器拒绝(超过限制数量的)连接之前,操作系统可以挂起的最大连接数量。n也可以看作是"排队的数量"

问题2:

既然没有报错,为什么没有打印用户3的地址?

因为:服务器正在处理用户1和用户2,没有空闲去接待用户3,所以用户3去排队了。

问题3:

为什么服务器能同时处理用户1和用户2?

因为:

这里用到了多线程和信号量,信号量设置为2,也就是允许并发数为2,服务器开启了两个线程,能同时分别处理用户1和用户2。

总结

socket.listen(n)

简单来说,这里的nt表示socket的”排队个数“

一般情况下,一个进程只有一个主线程(也就是单线程),那么socket允许的最大连接数为: n + 1

如果服务器是多线程,比如上面的代码例子是开了2个线程,那么socket允许的最大连接数就是: n + 2

换句话说:排队的人数(就是那个n) + 正在就餐的人数(服务器正在处理的socket连接数) = 允许接待的总人数(socket允许的最大连接数)

python统计字符串中数字个数 socket_Python中socket中的listen()里参数(数字)到底代表什么?...相关推荐

  1. python统计字符串数字个数_python统计字符串中数字个数_后端开发

    python怎么随机生成奇数_后端开发 python随机生成奇数的方法:导入random模块,使用random模块生成随机数,然后判断生成的随机数是否为奇数,若是奇数就加入列表.使用此方法得到的列表包 ...

  2. [转载] 用python统计中文字符数_使用Python统计字符串中各种字符的个数

    参考链接: Python中遍历字符串的单词 Python 统计字符串中各种字符出现的次数 一.提出问题 随机输入一段字符串,包括数字,英文,空格,其他字符,统计这些字符在其中出现的次数 二.难点提示思 ...

  3. python统计中文字符的个数_python统计不同字符的个数_后端开发

    c++怎么将字符串转数字_后端开发 在"c++"中可以使用"atoi"库函数将字符串转成数字,其语法是"int atoi(const char *np ...

  4. python统计字符串字符出现次数

    python统计字符串字符出现次数 本文教程操作环境:windows7系统.Python 3.9.1,DELL G3电脑. 1.count() 用于统计字符串中某个字符出现的次数.可选参数为文字串检索 ...

  5. 统计字符串英文字母个数

    题目:统计字符串英文字母个数 自定义一个函数,用来统计字符串中英文字母的个数,字符串长度小于99. 例如, 输入 abcdD45ua 输出: 7 难瓜小提示:如何传递数组? 下面是字符数组传递的例子. ...

  6. C语言|统计字符串中英文字符个数

    Q:调用函数,统计字符串中英文字符个数 A: 思想:定义一个变量count,遍历字符串,判断每个字符的ASCII码值是否为'a'到'z'和'A'到'Z'之间的字母,若在此范围之间则记录数量,count ...

  7. python统计字符串个数_python字符串中字符出现次数(python获取字符串个数)

    原博文 2020-03-17 19:25 − 今天要说的是Python的字符串函数还是很方便的,只需要调用 count() 方法即可. 最近,我在一个网站上看到了一个自然语言处理课程.我详细解释了一些 ...

  8. python统计字符串汉字个数_python统计字符个数

    python统计字符个数 Python count()方法 描述 Python count() 方法用于统计字符串里某个字符出现的次数.可选参数为在字符串搜索的开始与结束位置. 语法 count()方 ...

  9. python聚类分析如何确定分类个数_确定聚类分析中的类别个数的方法

    1.gap statistic 以k-means聚类为例,对于一个聚类个数k,首先利用k-means聚类将样本聚成k类,然后计算k类中各类内各点与类中心的距离加和W(ki),进而计算k类的距离加和W( ...

最新文章

  1. 裸设备 linux,Linux平台下裸设备的绑定:
  2. 11月13日科技联播:支付宝上线首张电子离婚证;网易云音乐敲定新一轮融资
  3. 通过python获取苹果手机备份文件中的照片,视频等信息采集
  4. Android 自定义View的使用纪要!!!
  5. 为什么会出现 java.util.ConcurrentModificationException 异常?
  6. 随想,对嵌入式职场建议
  7. 黄聪:解决wordpress定时发布文章失败”丢失计划任务”的插件
  8. ubuntu12.04 启动mysql_ubuntu 12.04 mysql 改utf8 启动不了
  9. 【USACO 2.3.4】Cow Tours 牛的旅行
  10. nacos安装与基础配置
  11. Paxos算法原理与推导
  12. Linux服务器遇到攻击怎么办?用这些方法封禁IP
  13. 关键字生成参考文案查找相似款,特卖淘宝达人有福了,自媒体时代的懒人助手
  14. mall-swarm微服务商城系统
  15. matlab地球月球卫星关系,Matlab 卫星绕地球旋转演示动画
  16. Android 高仿百度地图的LBS服务——基础地图篇(v 3.1.1)
  17. 一个好用的android图片压缩工具类
  18. 华为模拟器配置vlan教程
  19. 使用百度地图工具进行坐标转换
  20. 3PAR 存储架构解析

热门文章

  1. MPLS 典型应用场景——Vecloud
  2. UltraEdit v18及注册
  3. Codeforces Round #247 (Div. 2)C. k-Tree(动态规划)
  4. [YTU]_2625( 构造函数和析构函数)
  5. linux安装jdk和tomcat命令
  6. 继续说一下2016里面的json功能(1)
  7. WITH AS【原创】
  8. ASP.NET2.0 - skmMenu 的使用
  9. 教育部拟规定:中小学不得公开学生个人的考试成绩名次
  10. 英伟达发布全球唯一千万亿级集成型 AI 工作组服务器