我有一个server.py套接字代码和client.py。现在我需要客户端始终准备好(待机)接收数据,即使它没有向服务器发送任何数据。可以这样做吗?
答案 0 :(得分:0)
好吧,我想你需要的是选择模块。
http://www.doughellmann.com/PyMOTW/select/
这个想法是,在select的帮助下,你可以等待传递给select输入的套接字上发生的不同类型的事件(读,写,异常)。
答案 1 :(得分:0)
我用它来接收从一些C#代码发送的数据,我在Python中处理过。当你使用收到的数据在其他线程中执行东西时,它使用线程“永远监听”。希望这会有所帮助:
import threading
import SocketServer
class UDPHandler(SocketServer.BaseRequestHandler):
def handle(self):
## DO SOMETHING USEFUL WITH WHAT YOU RECEIVE VIA self:
data = self.request[0].strip() # in this case, self.request[0] contains a string
# etc.
class Listener(threading.Thread):
def run(self):
HOST = "192.168.1.23"
PORT = 8888
server = SocketServer.UDPServer((HOST, PORT), UDPHandler)
server.serve_forever()
Listener().start()