如何使套接字客户端准备好发送和接收而无需服务器的操作?

时间:2012-11-26 20:21:28

标签: c# python

我有一个server.py套接字代码和client.py。现在我需要客户端始终准备好(待机)接收数据,即使它没有向服务器发送任何数据。可以这样做吗?

2 个答案:

答案 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()