Loading...
1#!/usr/bin/env python3
2#
3# SPDX-License-Identifier: GPL-2.0
4#
5
6import sys, os, os.path, getopt
7import socket, time
8import subprocess
9import select
10
11def read(sock, n):
12 buf = b''
13 while len(buf) < n:
14 rem = n - len(buf)
15 try: s = sock.recv(rem)
16 except (socket.error) as e: return b''
17 buf += s
18 return buf
19
20def send(sock, s):
21 total = len(s)
22 count = 0
23 while count < total:
24 try: n = sock.send(s)
25 except (socket.error) as e: n = 0
26 if n == 0:
27 return count;
28 count += n
29 return count
30
31
32SERVER_PORT = 12877
33MAX_PORTS = 2
34
35serverPort = SERVER_PORT
36serverSocket = None
37
38# create passive socket
39serverSocket = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
40
41try: serverSocket.bind(('::1', 0))
42except socket.error as msg:
43 print('bind fails: ' + str(msg))
44
45sn = serverSocket.getsockname()
46serverPort = sn[1]
47
48cmdStr = ("./tcp_client.py %d &") % (serverPort)
49os.system(cmdStr)
50
51buf = b''
52n = 0
53while n < 500:
54 buf += b'.'
55 n += 1
56
57serverSocket.listen(MAX_PORTS)
58readList = [serverSocket]
59
60while True:
61 readyRead, readyWrite, inError = \
62 select.select(readList, [], [], 2)
63
64 if len(readyRead) > 0:
65 waitCount = 0
66 for sock in readyRead:
67 if sock == serverSocket:
68 (clientSocket, address) = serverSocket.accept()
69 address = str(address[0])
70 readList.append(clientSocket)
71 else:
72 sock.settimeout(1);
73 s = read(sock, 1000)
74 n = send(sock, buf)
75 sock.close()
76 serverSocket.close()
77 sys.exit(0)
78 else:
79 print('Select timeout!')
80 sys.exit(1)
1#!/usr/bin/env python2
2#
3# SPDX-License-Identifier: GPL-2.0
4#
5
6import sys, os, os.path, getopt
7import socket, time
8import subprocess
9import select
10
11def read(sock, n):
12 buf = ''
13 while len(buf) < n:
14 rem = n - len(buf)
15 try: s = sock.recv(rem)
16 except (socket.error), e: return ''
17 buf += s
18 return buf
19
20def send(sock, s):
21 total = len(s)
22 count = 0
23 while count < total:
24 try: n = sock.send(s)
25 except (socket.error), e: n = 0
26 if n == 0:
27 return count;
28 count += n
29 return count
30
31
32SERVER_PORT = 12877
33MAX_PORTS = 2
34
35serverPort = SERVER_PORT
36serverSocket = None
37
38HostName = socket.gethostname()
39
40# create passive socket
41serverSocket = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
42host = socket.gethostname()
43
44try: serverSocket.bind((host, 0))
45except socket.error as msg:
46 print 'bind fails: ', msg
47
48sn = serverSocket.getsockname()
49serverPort = sn[1]
50
51cmdStr = ("./tcp_client.py %d &") % (serverPort)
52os.system(cmdStr)
53
54buf = ''
55n = 0
56while n < 500:
57 buf += '.'
58 n += 1
59
60serverSocket.listen(MAX_PORTS)
61readList = [serverSocket]
62
63while True:
64 readyRead, readyWrite, inError = \
65 select.select(readList, [], [], 2)
66
67 if len(readyRead) > 0:
68 waitCount = 0
69 for sock in readyRead:
70 if sock == serverSocket:
71 (clientSocket, address) = serverSocket.accept()
72 address = str(address[0])
73 readList.append(clientSocket)
74 else:
75 sock.settimeout(1);
76 s = read(sock, 1000)
77 n = send(sock, buf)
78 sock.close()
79 serverSocket.close()
80 sys.exit(0)
81 else:
82 print 'Select timeout!'
83 sys.exit(1)