gpt4 book ai didi

Python 套接字 - "blocking"套接字操作到底是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 15:29:42 25 4
gpt4 key购买 nike

我正在使用套接字库来模拟通过网络发送数据包。

socket.settimeout() 方法的文档说..

... socket.settimeout(value) Set a timeout on blocking socket operations. The value argument can be a nonnegative float expressing seconds, or None. If a float is given, subsequent socket operations will raise a timeout exception if the timeout period value has elapsed before the operation has completed. Setting a timeout of None disables timeouts on socket operations. s.settimeout(0.0) is equivalent to s.setblocking(0); s.settimeout(None) is equivalent to s.setblocking(1).

阻塞套接字操作到底是什么?它只是recv* 调用,还是还包括send 调用?

提前谢谢您。

最佳答案

阻塞操作是无法在本地完全处理但可能需要等待连接对等方的操作。对于 TCP 套接字,这显然包括接受、连接和接收。但它还包括发送:如果本地写入套接字缓冲区已满,即无法向其中写入更多数据,则发送可能会阻塞。在这种情况下,它必须等待对等方接收并确认足够的数据,以便将这些数据从写入缓冲区中删除,并再次有空间写入新数据。

关于Python 套接字 - "blocking"套接字操作到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42983291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com