使用twisted搭建socket的服务器,并能给客户端发送消息, 比较简单,直接上代码
#coding=utf-8 ‘‘‘用于实现给响应客户端的请求,并且可以给客户发送消息,‘‘‘ from twisted.internet import reactorfrom twisted.internet.protocol import Protocol, Factoryimport timeimport thread #线程体,def timer(no, interval): while True: time.sleep(interval) print(time.strftime(‘%Y-%m-%d %H:%M:%S‘,time.localtime(time.time()))) for element in MyFactory.clients: print(element) #在这里可以给每个客户端发送消息 element.transport.getHandle().sendall(‘dddddddddddd‘) thread.exit_thread() class MyProtocal(Protocol): def connectionMade(self): self.factory.addClient(self) def connectionLost(self, reason): #print(reason) self.factory.deleteClient(self) def dataReceived(self, data): self.transport.write(‘okthis is ok ‘) #在这里接收用户的请求认证,并返回数据,发送数据请使用transport.getHandle().sendall() 保证数据立刻发送到客户端 class MyFactory(Factory): protocol = MyProtocal clients=[] #用户保存客户端列表, def __init__(self): thread.start_new_thread(timer,(1,3)) #启动线程用于处理用于给客户端主动发送数据 def addClient(self, newclient): print(newclient) self.clients.append(newclient) def deleteClient(self, client): print(client) self.clients.remove(client) reactor.listenTCP(9999, MyFactory())reactor.run()
可以在此基础上完成很多模块的功能。
存在以下疑惑点,我如何通过代码来控制停止服务器。 (如何使用reactor.stop())
时间: 2024-10-24 13:47:17