Используйте 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()