werkende jtorx code
[tt2015.git] / a3 / code / jtorx / client / helloworld.py
1 #!/usr/bin/python
2 from sender import Sender
3 import sys
4 import socket
5
6 JTORXPORT = 8887
7
8 if __name__ == "__main__":
9 serverPort = 10000
10 if len(sys.argv) > 1:
11 serverPort = int(sys.argv[1])
12 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
13 s.bind(('', JTORXPORT))
14 s.listen(1)
15 print 'Listening on port {} for JTorx'.format(JTORXPORT)
16 conn, addr = s.accept()
17 print 'Connected by JTorx at {}'.format(addr)
18 sender = None
19 seqnr = None
20 while True:
21 data = conn.recv(1024)
22 if not data:
23 break
24 data = data.strip()
25 if data == 'Listen?':
26 sender = Sender(serverIP="127.0.0.1", networkInterface="lo", isLocal=True, serverPort=serverPort, waitTime=1, isVerbose=1)
27 response = ''
28 if data == 'SYN?':
29 seqnr = 100
30 response = sender.sendInput('S', seqnr, seqnr)
31 response = response[0]
32 if data == 'ACK?':
33 seqnr += 1
34 response = sender.sendInput('S', seqnr, sender.lastSeqReceived + 1)
35 response = response[0]
36 print 'received: {}'.format(data)
37
38 print 'closed'
39 conn.close()
40 exit()
41 # isLocal is True if the interface is a local one
42
43 # triggers the response SA _ 101 if the server is listening on the specified port
44 # if the server isn't listening, there are no responses
45 print sender.lastAckReceived
46 print sender.isTimeout
47
48 # an example for the echo handling server
49 if sender.isTimeout == False: # in case something was received
50 sender.sendInput("A", 101, sender.lastSeqReceived + 1) # connection is established
51 sender.sendInput("A", 101, sender.lastSeqReceived + 1, data = "Hello world!") # send some data
52 sender.sendInput("FA", 103, sender.lastSeqReceived + 1) # close connection (the echo also closes)
53 sender.sendInput("RP", 104, 0) # reset connection
54
55 sender.sendReset() # switch sender port
56 print 'Succes!'