pyuv:一个实现了与libuv接口进行交互的开源python库
import signal
import pyuv
def on_read(client, data, error):
print(data,error)
if data is None:
client.close()
clients.remove(client)
return
client.write(data)
def on_connection(server, error):
client = pyuv.TCP(server.loop)
server.accept(client)
clients.append(client)
client.start_read(on_read)
def signal_cb(handle, signum):
[c.close() for c in clients]
signal_h.close()
server.close()
print("PyUV version %s" % pyuv.__version__)
loop = pyuv.Loop.default_loop()
clients = []
server = pyuv.TCP(loop)
server.bind(("0.0.0.0", 9000))
server.listen(on_connection)
signal_h = pyuv.Signal(loop)
signal_h.start(signal_cb, signal.SIGINT)
loop.run()
print("Stopped!")