我正在创建一个Socket客户端并尝试获取一些数据。为了实现此目的,我需要通过Socket连接到Web服务器,而服务器实际上会创建另一个Socket来监听并等待数据,之后将数据发送回客户端。
我遇到的问题是下面的代码中,我的Socket客户端不等待来自服务器的输入数据,而只接受空数据。
如何使用Python sockets等待来自服务器的非空数据?
我的代码:
import sys
import json
import socketIO_client
import time
host = 'https://SOME_URL'
socketIO = socketIO_client.SocketIO(host, params={"email" : "edmund@gmail.com"})
def on_connect(*args):
print "socket.io connected"
def on_disconnect(*args):
print "socketIO diconnected"
socketIO.on('connect', on_connect)
socketIO.on('disconnect', on_disconnect)
def on_response_state(*args):
print args # Prints ()
socketIO.emit('receive_state',on_response_state)
socketIO.wait_for_callbacks(seconds=3)
socketIO.wait()
以等待响应。 - James KentSoftware_delay
,block_wait
,block_read
永远不能解决您的问题!需要读取一些头部数据/字节(因为header
包含content-length
),并等待直到最后一个字节被接收到(否则会得到已损坏的数据)。 - dsgdfg