Twisted
Twisted is an event-driven networking engine written in Python and licensed under the open source MIT license.
Install from source
- su
- cd /tmp
wget http://twistedmatrix.com/Releases/Twisted/13.1/Twisted-13.1.0.tar.bz2
- tar xvif Twisted-13.1.0.tar.bz2
- cd Twisted-13.1.0
- python2.7 setup.py build
- python2.7 setup.py install
Test installation
- python
- from twisted.internet import protocol, reactor
- quit()
Slackbuild
- su
- cd /tmp
wget http://slackbuilds.org/slackbuilds/14.1/python/python-twisted.tar.gz
- tar xvzf python-twisted.tar.gz
- cd python-twisted
wget https://pypi.python.org/packages/source/T/Twisted/Twisted-13.2.0.tar.bz2
./python-twisted.SlackBuild
- installpkg /tmp/python-twisted-13.2.0-x86_64-1_SBo.tgz
Slackware64 14: python-twisted-13.2.0-x86_64-1_SBo.tgz
Echo server
1 from twisted.internet import protocol, reactor
2
3 class Echo(protocol.Protocol):
4 def dataReceived(self, data):
5 self.transport.write(data)
6
7 def connectionMade(self):
8 print('Connection made')
9
10 def connectionLost(self,reason):
11 print('Connection lost')
12 class EchoFactory(protocol.Factory):
13 def buildProtocol(self, addr):
14 return Echo()
15
16 if __name__=='__main__':
17 reactor.listenTCP(1234, EchoFactory())
18 reactor.run()
Echo client
import threading
import time
import socket
class Client (threading.Thread):
def __init__(self):
threading.Thread.__init__(self) #required
def run(self):
for x in range(1,100):
HOST = 'localhost'
PORT = 1234
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('connecting...')
s.connect((HOST, PORT))
print('sending config...')
s.send('test')
s.close()
print('complete')
if __name__=='__main__':
clients=[]
for x in range(1,100):
clients.append( Client() )
for c in clients:
c.start()