twisted udp 实现示例,twistedudp,from twisted


from twisted.internet.protocol import DatagramProtocolfrom twisted.internet import reactorimport osclass MulticastPingPong(DatagramProtocol):    def startProtocol(self):        self.transport.setTTL(5)        self.transport.joinGroup("228.0.0.5")    def datagramReceived(self, datagram, address):        print "%s"%repr(datagram)def talk():    import socket    pid = os.getpid()    while True:        data = raw_input()        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)        sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)        sock.sendto("%s say:%s"%(pid, data), ("228.0.0.5", 8005))reactor.listenMulticast(8005, MulticastPingPong(), listenMultiple=True)reactor.callInThread(talk)reactor.run()

Twisted Matrix 是一种越来越受欢迎的纯 Python 框架,用来进行网络服务和应用程序的编程。虽然 Twisted Matrix 中有大量松散耦合的模块化组件,但该框架的中心概念还是非阻塞异步服务器这一思想。在本文中,David 向您介绍了一种新编程风格,对于习惯于线程技术或分叉服务器的开发人员来说,这是一种新颖的编程风格,但它却能在繁重负载的情况下带来极高的效率。

评论关闭