2010-12-07 109 views
0

这是我第一次写在这里。如果我的英语不太好,我很抱歉。 我想使用Twisted在Python中设置一个简单的UDP服务器。 GUI是基于QT4的,我需要在Windows或Linux环境中运行应用程序。异步UDP服务器扭曲和QT4

的代码非常简单:

from twisted.internet.protocol import DatagramProtocol 
from twisted.internet import reactor, stdio 
from twisted.protocols.basic import LineReceiver 

class UDPLineReceived(DatagramProtocol): 
    def datagramReceived(self, data, (host, port)): 
    print "received %r from %s:%d" % (data, host, port) 

reactor.listenUDP(int(self.inPort.text()), UDPLineReceived()) 
reactor.run() 

它接收所定义的端口上发送的数据包,但它挂起用户界面。 所以,我想知道我应该如何改变我的代码才能使它在“异步”模式下工作。

如果您需要其他信息,请告诉我!
在此先感谢
马克

回答

1

使用PyQt4 integration reactor让扭曲和Qt协作运行:

app = QApplication(...) 
import qt4reactor 
qt4reactor.install() 

from twisted.internet.protocol import DatagramProtocol 
from twisted.internet import reactor, stdio 
from twisted.protocols.basic import LineReceiver 

class UDPLineReceived(DatagramProtocol): 
    def datagramReceived(self, data, (host, port)): 
     print "received %r from %s:%d" % (data, host, port) 

reactor.listenUDP(int(self.inPort.text()), UDPLineReceived()) 
reactor.run() 
+0

谢谢。只是一个问题:qt4reactor的README文件说解压文件夹到PYTHONPATH中。但是,我应该将它解压缩到Python26的根目录还是在Lib \ SitePackages中,这也是扭曲的文件夹? – Mark 2010-12-07 15:59:55