python - 当空 python 时继续 sock.recv()

标签 python sockets

我有一个正在运行的线程正在从套接字连接中查找数据。当它是空的时候,它只是像我发现的那样坐在那里,但当它是空的时候我想经过它。我发现选择模块应该能够做到这一点,但现在它只是位于选择行。我在下面的一些研究中尝试过这一点,但就像我说的,现在它不再停在 data = sock.recv 处,而是停在第一行。有任何想法吗?谢谢。

while True:
        readable, writable, exceptional = select.select([sock], [], [])
        if readable:
            data = sock.recv(1024)
        else:
            do something

最佳答案

正如您在 the documentation 中所读到的那样, select.select() 采用可选的第四个参数,采用超时值。

如果超时后 sock 仍不可读,则 read 为空。

你可以尝试类似的事情

while True:
    readable, writable, exceptional = select.select([sock], [], [], 1.0)
    if readable:
        data = sock.recv(1024)
    else:
        print "nothing yet"

关于python - 当空 python 时继续 sock.recv(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24680124/

相关文章:

c - 传输端点未连接

Java套接字编程

python - 从 S3 读取大型 JSON 文件 (3K+) 并从数组中选择特定键

python - 查找多个参数 Selenium Python

node.js - 从套接字数据事件nodejs获取字节

file - Node isDirectory() 无法正常工作或者我丢失了一些东西

python - “MyAppConfig”必须提供名称属性

python - 更改 matplotlib imshow() 图形轴上的值

python - 关于多重继承、动态类创建和实例化的问题

security - 列出 SSL_connect 上服务器提供的证书链