-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathslave.py
49 lines (43 loc) · 1.07 KB
/
slave.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import socket
import array
from common import *
def get_data(s):
data = []
l = int(s.recv(40))
while True:
if l <= 0:
break
elif l > 512:
tmp = s.recv(512)
else:
tmp = s.recv(l)
data.append(tmp)
l -= len(tmp)
tmp = b"".join(data)
data = array.array('q',[])
data.frombytes(tmp)
return data.tolist()
if __name__ == "__main__":
s = socket.socket()
s.connect(("8.8.8.8",53))
slave_ip = s.getsockname()[0]
s.close()
port = 6994
s = socket.socket()
s.bind((slave_ip,port))
s.listen(5)
print("Ready to serve master at {}.".format((slave_ip,port)))
while True:
c,addr = s.accept()
print("Connected with master {}".format(addr))
data = get_data(c)
print("Data received")
result = str(func(data))
tmp = result.encode()
l_tmp = str(len(tmp))
c.send(("0"*(40-len(l_tmp))+l_tmp).encode())
c.send(tmp)
c.close()
print("done.")
break
s.shutdown(socket.SHUT_RDWR)