Python 网络编程 · 拾遗

端口占用

TCP编程

  • 传输可靠性
  • 传输大小

代码细节

假如:s = socket.socket()

s.listen()

开始监听。

  • python socket.listen(5)
    这个参数backlog=5,究竟是什么意思?

很多地方都这样解释:“socket.listen(5) # 等待客户端连接并设置最大连接数”,但是最大连接数为5,认真的吗?

查了之后,网上有这样的解释,我觉得比较合理:

这个参数指定是等待队列的长度

也就是如果系统可以并发处理100个请求,同时到达106个请求,100个请求直接被处理,5个等待,第106个直接就拒绝。

上万个请求进来,系统不是每次接受5个用户,而是可以让5个用户等待,系统每次接受的用户取决于系统吞吐量。

而且一般应用传5就够了,一万个并发的应用显然也不是一般应用了

还有另一种说法:
在这里插入图片描述

s.accept()

被动接受客户端连接,(阻塞式)等待连接的到来,并返回(conn, address)二元元组。其中conn是一个通信对象,可以用来接收和发送数据;address是连接客户端的地址,address的格式为元组(hostname, port)?

s.recv(bufsize)

接收数据,数据以bytes类型返回,bufsize指定要接收的最大数据量。

参考:

  1. python socket.listen(5)的问题
  2. socket编程——值得好好读
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值