如何等到使用 Python 套接字接收数据?

我正在创建一个套接字客户端并尝试获取一些数据。为此,我需要通过套接字连接到 Web 服务器,服务器实际上创建了另一个套接字,该套接字侦听并等待数据发送回客户端。


我在下面的代码中遇到的问题是我的套接字客户端不等待来自服务器的传入数据而只接受空数据。


如何使用 Python 套接字等待来自服务器的非空数据?


我的代码:


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)


一只斗牛犬
浏览 140回答 3
3回答

红颜莎娜

将接收套接字放在一个 while 线程中。像这样:  def rec(self):    while 1:        sleep 0.01        rdata = self.clientsocket.recv(self.buffsize)        print("rec from server: ", rdata.decode('utf8'),'\n','press enter to continue')....t2 = threading.Thread(target=y.rec, name="rec") t2.start()

繁花不似锦

由于您使用该SocketIO库来包含参数(使用requests实现),并且想要发出消息,因此您可以通过不指定等待时间来无限期地等待响应。with SocketIO(host, params={"email" : "edmund@gmail.com"}) as socketIO:    def on_response_state(*args):        print args # Prints ()    socketIO.emit('receive_state', on_response_state)    socketIO.wait()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python