여기 분명히 희망 언어 죄송
을 일했다 SimpleXMLRPCServer를 사용하는 스레드 된 XMLRPC 서버의 예제. wx.CallAfter가 wx 주 스레드와 "return 0"을 호출합니다 (단, None 값을 반환하도록 서버를 구성 할 수는 있지만).
from SimpleXMLRPCServer import SimpleXMLRPCServer
import threading
class XMLRPCServerThread(threading.Thread):
def __init__(self, remoteObject, host='localhost', port=8000):
self.remoteObject = remoteObject
self.host = host
self.port = port
threading.Thread.__init__(self)
def stop(self):
self.server.shutdown()
def run(self):
self.server = SimpleXMLRPCServer((self.host, self.port), logRequests=False)
self.server.register_instance(self.remoteObject)
self.server.serve_forever()
class MyRemoteCalls(object):
def __init__(self, obj):
self.obj = obj
def exampleCall(self, arg):
wx.CallAfter(self.obj.method, arg)
return 0
def getRPCThread(obj, host='localhost', port=8000):
remoteObj = MyRemoteCalls(obj)
rpcThread = XMLRPCServerThread(remoteObj, host, port)
rpcThread.start()
return rpcThread
코드를 표시 할 수 있습니까? 또한, 작동하지 않는다는 것은 무엇을 의미합니까? 예외, 추적, 세그 폴트가 있습니까? 당신이 얻고있는 실제 결과를 게시 할 수 있다면 도움이 될 것입니다. – aquavitae
새 요청을 처리하기 위해 새 스레드를 시작할 수 있습니다. 새 스레드에서 GUI를 업데이트하려고 할 때'wx.CallAfter'를 사용해야합니다. – bouke