私はtwistedを使用して複数の接続を受け入れるシンプルなサーバーを作成しました。接続しているクライアントの数を数えたいと思います。これは実際には(論理的な)clientConnectionMade()を使用して工場で行っているが、カウンタの値を更新しない、本当に私はそれが私の間違いであるか分からない。私は少し助けていただきありがとうございます。Pythonを使用したシンプルなサーバーのサービス対象クライアントのカウンタ+ツイスト
マイServerのコード:(もhttp://bpaste.net/show/26789/中)
import socket
import datetime
from twisted.internet import reactor, protocol
from twisted.internet.protocol import Factory, Protocol
class Echo(protocol.Protocol):
def connectionMade(self):
print "New client connected"
def dataReceived(self, data):
print "Msg from the client received"
if data == "datetime":
now = datetime.datetime.now()
self.transport.write("Date and time:")
self.transport.write(str(now))
elif data == "clientes":
self.transport.write("Numbers of clients served: %d " % (self.factory.numClients))
else:
self.transport.write("msg received without actions")
class EchoFactory(Factory):
protocol = Echo
def __init__(self):
self.numClients = 0
def clientConnectionMade(self):
self.numClients = self.numClients+1
def main():
factory = EchoFactory()
factory.protocol = Echo
reactor.listenTCP(9000,factory)
reactor.run()
# this only runs if the module was *not* imported
if __name__ == '__main__':
main()
doesntのちょうどカウンター 'numClients' を更新し、私はなぜ知らないdoesntの、いずれかのエラーを示しています。
おかげで(あなたがself.numClientsをインクリメント)
これはコンパイルされますか?あなたのスペーシングは正しくありません... – Ben