我有以下tcpserver简单的例子。我期待与udp服务器共享因子counter var,所以在每次连接时它都会为tcp和udp增加值。因此如果我用TCP首先连接这将是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()
我的主要问题是启动一个UDP类,将沿侧工作..那是我的难点。我想我如何引用计数器确定,将工作
DatagramCounter如何共享对TCP服务器使用的因子的引用? – kratsg 2015-10-19 21:07:45
优秀的问题!我的回答其实是错误的。我忘了添加将DatagramCounter挂接到工厂的部分。编辑答案与修复。 – 2016-01-13 18:31:55