2010-12-07 111 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