6
我正嘗試使用Twisted創建客戶端/服務器。 我想創建一個守護進程,它將作爲客戶端連接到另一臺服務器,並充當其他客戶端的服務器。 我已經寫類似的東西至極我想說明我的問題:使用Twisted創建客戶端/服務器
server = sys.argv[1]
control_port = 8001
class ControlClient(protocol.Protocol):
def makeConnection(self, transport):
[some code here -snip-]
self.firstOrder(order, transport)
def firstOrder(self, action, transport):
self.t = transport
self.t.write(action + "\0")
def sendOrder(self, action):
self.t.write(action + "\0")
def dataReceived(self, data):
[some code here -snip-]
[HERE I WANT TO SEND DATA TO CLIENTS CONNECTED TO MY TWISTED SERVER, USING CONTROL SERVER]
class ControlServer(ControlClient):
def dataReceived(self, data):
print "client said " + data
def makeConnection(self, transport):
self.t = transport
self.t.write("make connection")
print "make connection"
def sendData(self, data):
self.t.write("data")
class ClientFactory(protocol.ClientFactory):
protocol = ControlClient
def clientConnectionFailed(self, connector, reason):
print "Connection failed - goodbye!"
reactor.stop()
def clientConnectionLost(self, connector, reason):
print "Connection lost - goodbye!"
reactor.stop()
class ServerFactory(protocol.ServerFactory):
protocol = ControlServer
def main():
c = ClientFactory()
reactor.connectTCP(server, control_port, c)
s = ServerFactory()
reactor.listenTCP(9000, s)
reactor.run()
if __name__ == '__main__':
main()
正如你所看到的,我要寄(服務器)收到了一些數據(客戶端)。我的問題當然是我的ServerControl沒有在我的ClientControl中實例化,所以我沒有訪問傳輸需要發送數據到客戶端。
很抱歉,如果我不理解,我提前任何幫助我在Python和扭曲的新的和英語是沒有我的主要語言:( 隨意問,如果你失去了一些東西!
感謝= )
嗨,謝謝你的回答我會試試這個。這似乎是一個很好的解決方案。 – tirlototo 2011-03-29 08:01:11
好吧,再次感謝您的幫助,它的作品非常棒!有一個愉快的一天=) – tirlototo 2011-03-29 10:04:50
ahah你是一個扭曲的發展; =) – tirlototo 2011-03-29 10:07:14