+++ /dev/null
-#!/usr/bin/python
-from sender import Sender
-import sys
-import socket
-
-JTORXPORT = 8888
-
-if __name__ == "__main__":
- serverPort = 10000
- if len(sys.argv) > 1:
- serverPort = int(sys.argv[1])
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.bind(('', JTORXPORT))
- s.listen(1)
- print 'Listening on port {} for JTorx'.format(JTORXPORT)
- conn, addr = s.accept()
- print 'Connected by JTorx at {}'.format(addr)
- sender = None
- seqnr = None
- response = ''
- while True:
- data = conn.recv(1024)
- if not data:
- break
- data = data.strip()
- if data == 'Listen?':
- sender = Sender(serverIP="127.0.0.1", networkInterface="lo", isLocal=True, serverPort=serverPort, waitTime=1, isVerbose=0)
- response = ''
- if data == 'SYN?':
- seqnr = 100
- print 'S: {}'.format(seqnr)
- response = sender.sendInput('S', seqnr, seqnr)
- if data == 'ACK?':
- seqnr += 1
- print 'A: {}'.format(seqnr)
- response = sender.sendInput('A', seqnr, sender.lastSeqReceived + 1)
- if data == 'FINACK?':
- seqnr += 1
- print 'FA: {}'.format(seqnr)
- response = sender.sendInput("FA", seqnr, sender.lastSeqReceived + 1)
- if data == 'FIN?':
- seqnr += 1
- print 'F: {}'.format(seqnr)
- response = sender.sendInput("F", seqnr, sender.lastSeqReceived + 1)
- if data == 'RST?':
- seqnr += 1
- print 'RP: {}'.format(seqnr)
- response = sender.sendInput("RP", seqnr, 0)
- sender.sendReset()
- if data == 'DAT?':
- print 'DAT: {} sending: a'.format(seqnr)
- response = sender.sendInput('A', seqnr, sender.lastSeqReceived + 1)
- response = sender.sendInput('PA', seqnr, sender.lastSeqReceived + 1, data='a\n')
- seqnr += 2
- if response:
- print 'response: {}'.format(response)
- if response == 'Timeout':
- print 'data: {} - TIMEOUT!'.format(data)
- conn.send('TIMEOUT!\n')
- elif response[0] == 'A' or response[0] == 'PA':
- print 'data: {} - ACK!'.format(data)
- conn.send('ACK!\n')
- elif response[0] == 'R':
- print 'data: {} - RST!'.format(data)
- conn.send('RST!\n')
- elif response[0] == 'SA':
- print 'data: {} - SYNACK!'.format(data)
- conn.send('SYNACK!\n')
- else:
- print 'data: {}'.format(data)
-
- print 'closed'
- conn.close()
- exit()