from time import ctime
from twisted.internet import reactor from twisted.internet.protocol import Protocol, Factory
PORT = 21567
class TSServProtocol(Protocol): def connectionMade(self): clnt = self.clnt = self.transport.getPeer().host print('...connected from :', clnt)
def dataReceived(self, data):
self.transport.write('{} {}'.format(ctime(), data.decode("utf-8")).encode("utf-8"))
print(data.decode("utf-8"))
factory = Factory() factory.protocol = TSServProtocol print('waiting for connection...') reactor.listenTCP(PORT, factory) reactor.run()
from twisted.internet import reactor from twisted.internet.protocol import Protocol, ClientFactory
HOST = 'localhost' PORT = 21567
class TSClntProtocol(Protocol): def sendData(self): data = input('> ') if data and data!="close": print('...sending %s...' % data) self.transport.write(data.encode("utf-8")) else: self.transport.loseConnection()
def connectionMade(self):
self.sendData()
def dataReceived(self, data):
print(data.decode("utf8"))
self.sendData()
class TSClntFactory(ClientFactory): protocol = TSClntProtocol clientConnectionLost = clientConnectionFailed = lambda self, connector, reason: reactor.stop()
reactor.connectTCP(HOST, PORT, TSClntFactory()) reactor.run()