2014-09-06 206 views
0

我有2個服務器文件工作與電暈模擬器。一個是工作,但另一個不是。不知道這兩個文件有什麼不同。以下是我的服務器代碼。電暈模擬器連接到服務器後停止工作

非工作:

class Chat(Protocol): 
    def connectionMade(self): 
     self.factory.clients.append(self) 
    def connectionLost(self, reason): 
     self.factory.clients.remove(self) 
    def dataReceived(self,data): 
     for c in self.factory.clients: 
      c.message(data) 
      print data 
    def message(self, data): 
     self.transport.write(data) 

factory = Factory() 
factory.clients = [] 
factory.protocol = Chat 

reactor.listenTCP(8080,factory) 
reactor.run() 

工作:

class IphoneChat(Protocol): 
    def connectionMade(self): 
     self.factory.clients.append(self) 
     print "Clients are " ,self.factory.clients 
    def connectionLost(self, reason): 
     self.factory.clients.remove(self) 
    def dataReceived(self, data): 
     print "The data is " ,data 
     for c in self.factory.clients: 
      c.message(data) 
    def message(self, message): 
     self.transport.write(message + '\n') 

factory = Factory() 
factory.clients = [] 
factory.protocol = IphoneChat 
reactor.listenTCP(8080, factory) 
print "Server Start!!!" 
reactor.run() 

我把我所有的代碼,因爲我怕失去了一些東西有關代碼重要的。 謝謝你的幫助。

回答

1

您需要發送 「\ n」 的消息

class Chat(Protocol): 
    def connectionMade(self): 
     self.factory.clients.append(self) 
    def connectionLost(self, reason): 
     self.factory.clients.remove(self) 
    def dataReceived(self,data): 
     for c in self.factory.clients: 
      c.message(data) 
      print data 
    def message(self, data): 
     self.transport.write(data + '\n') 

factory = Factory() 
factory.clients = [] 
factory.protocol = Chat 

reactor.listenTCP(8080,factory) 
reactor.run() 

它的HTTP協議規定結束。

+0

我只知道。非常感謝你。 :D – user3480543 2014-09-06 16:33:33

+0

嗨iBad,我嘗試使用Ruby服務器而不是Python。紅寶石有這樣的要求嗎?我使用了「aaa」,但似乎有同樣的問題。 – user3480543 2014-09-07 02:06:34

+0

嗨,它的協議要求,不依賴於語言。電暈客戶端只是坐在那裏,等待'\ n' – iBad 2014-09-07 05:32:34

相關問題