这是我第一次写这里。如果我的英语不太好,我道歉。 我想用Twisted在Python中设置一个简单的UDP服务器。 GUI是基于QT4的,我需要在Windows或Linux环境中运行该应用程序。
代码非常简单:
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 :(得分:1)
使用PyQt4 integration reactor让Twisted和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()