Python socket.sendall() 函数
我正在阅读一份名为Python网络编程教程的文档,里面的作者提到“sendall()这个函数应该只在阻塞套接字中使用。”
但是我在Python的官方文档中并没有看到这样的说明,socket.sendall(string[, flags])。
那么,PyNet的作者说得对吗?
2 个回答
14
当你不确定的时候,可以查看源代码。
socket_sendall
一旦 send()
返回 -1,就会停止继续发送。这个返回值会在你对一个非阻塞的套接字调用它时出现,特别是当你没有先调用 poll()
或 select()
的时候。 (而且 internal_select
函数在套接字是非阻塞的时候,会跳过调用 poll()
或 select()
。)
所以我觉得 PyNet 的作者说得对。