Linux Audio

Check our new training course

Loading...
 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)