以下のtcpserverの簡単な例があります。私はファクタカウンタvarをudpサーバと共有するようにしています。そのため、それぞれの接続では、tcpとudpの両方に値が設定されます。私は、TCPで最初に接続するのであれば、それは...その、私はUDPのポートに接続する場合2が、その後...それが私の主な問題は、側面に沿って動作するUDPクラスを起動して3ツイスト共有tcp/udpプロトコル間の変数
#!/usr/bin/env python
from twisted.internet.protocol import Factory, Protocol
from twisted.internet import reactor
class TCP(Protocol):
def connectionMade(self):
self.factory.counter += 1
self.transport.write(str(self.factory.counter)+'\r\n')
self.transport.loseConnection()
class QOTDFactory(Factory):
def __init__(self, protocol='tcp'):
if protocol == 'tcp':
self.protocol = TCP
else:
self.protocol = UDP
self.counter = 1
reactor.listenTCP(8007, QOTDFactory('tcp'))
#reactor.listenUDP(8007, QOTDFactory('udp'))
reactor.run()
になりますでしょう私の固執ポイントです。
class QOTDFactory(Factory):
counter = 1
def __init__(self, protocol='tcp'):
if protocol == 'tcp':
self.protocol = TCP
else:
self.protocol = UDP
QOTDFactory.counter += 1
DatagramCounterは、TCPサーバが使用するファクタへの参照をどのように共有していますか? – kratsg
優秀な質問!私の答えは実際には間違っていた。私はDatagramCounterをファクトリにフックする部分を追加するのを忘れていました。フィックスの編集された答え。 –