我正在尝试将UDP服务器与wxPython GUI放在一起。
以下是代码的链接:
我把它链接起来非常冗长。我已经成功地在线程上运行了UDP服务器但是在停止线程时我无法弄清楚如何关闭套接字。
目前,每次点击开始时它都会启动一个新线程,但我将删除它。线程停止时是否可以关闭套接字?
如果我这样做完全错误的话,任何建议都会受到赞赏。
干杯
EEF
答案 0 :(得分:2)
使用Python Twisted。它将wxPython与twisted.internet.wxreactor集成,使网络变得简单无线。
from twisted.internet import wxreactor
from twisted.internet.protocol import DatagramProtocol
wxreactor.install()
class MyProtocol(DatagramProtocol):
def datagramReceived(self, data, (host, port)):
print "received %r from %s:%d" % (data, host, port)
self.transport.write(data, (host, port))
# <GUI code>
# to start listening do port = reactor.listenUDP(<port>, MyProtocol())
# to stop do self.transport.stopListening() in MyProtocol
# or port.stopListening() from outside
from twisted.internet import reactor
reactor.registerWxApp(app)
reactor.run()