【问题标题】:Async UDP Server with Twisted and QT4带有 Twisted 和 QT4 的异步 UDP 服务器
【发布时间】:2010-12-07 12:05:40
【问题描述】:

这是我第一次在这里写作。如果我的英语不是那么好,我很抱歉。 我想使用 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()

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

如果您需要其他信息,请告诉我!
提前感谢
标记

【问题讨论】:

    标签: qt4 udp twisted


    【解决方案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()
    

    【讨论】:

    • 谢谢。只是一个问题:qt4reactor 的 README 文件说要将文件夹解压缩到 PYTHONPATH 中。但是我应该将它解压到 Python26 根目录还是在 Lib\SitePackages 中也是扭曲文件夹的位置?
    猜你喜欢
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2011-04-07
    • 2013-12-22
    • 2014-04-08
    • 1970-01-01
    • 2021-11-02
    • 2013-08-18
    相关资源
    最近更新 更多