栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python套接字缓冲

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python套接字缓冲

recv()
通过调用C库函数直接处理该调用。

它将阻止套接字等待数据。实际上,它只会让

recv()
系统调用阻塞。

file.readline()
是有效的缓冲实现。它不是线程安全的,因为它假定它是唯一读取文件的文件。(例如,通过缓冲即将到来的输入。)

如果使用文件对象,则每次

read()
使用正参数调用时,底层代码
recv()
仅会请求所请求的数据量,除非已对其进行了缓冲。

如果满足以下条件,它将被缓冲:

  • 您已经调用readline()来读取完整的缓冲区

  • 行的结尾在缓冲区的结尾之前

因此将数据保留在缓冲区中。否则,缓冲区通常不会溢出。

问题的目的尚不清楚。如果需要在读取之前查看数据是否可用,可以通过

select()
或将套接字设置为非阻塞模式
s.setblocking(False)
。然后,如果没有等待的数据,读取将返回空,而不是阻塞。

您正在读取一个具有多个线程的文件或套接字吗?我将让一个工人来读取套接字并将接收到的项目馈送到队列中,以供其他线程处理。

建议参考进行系统调用的Python
Socket
Module源代码

和C源代码。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636979.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号