wu_xinjun
2022-06-20 6b37ae2b15eca92b3cacac0e113290eb28ccfa8b
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from socketserver import BaseRequestHandler, UDPServer
import time
import os, sys
 
 
cudir,_ = os.path.split(__file__)
file_folder = os.path.join(cudir,"saveUDPData")
 
if not os.path.exists(file_folder):
    os.makedirs(file_folder)
    print(f"make a new folder: {file_folder}")
 
packed_count = 0
 
class PointCloudUDPRequestHandler(BaseRequestHandler):
 
    def handle(self):
 
        global packed_count
 
        print(time.asctime(),' Got connection from {}, {}'.format(self.client_address, packed_count))
        # Get message and client socket
        msg, sock = self.request
        f = open('{}/packet{}.udp'.format(file_folder,packed_count), 'wb')
        f.write(msg)
        f.close()
        packed_count += 1
        if packed_count >= 1000000:
            UDPServer.server_close(server)
 
 
if __name__ == '__main__':
 
    def help():
        print("Usage: udp_test_get.py [host]. host can be 'test' or 'microwave' ")
        exit(1)
 
    if len(sys.argv) == 2:
        if sys.argv[1] == 'test':
            host = ''
        elif sys.argv[1] == 'microwave':
            host = '192.168.2.65'
        else:
            help()
    else:
        help()
 
    global server
    # host = ''
    # host = '192.168.2.65' # use this host to get the udp data from microwave device
    port = 9911
    server =UDPServer((host, port), PointCloudUDPRequestHandler)
    print(time.asctime(),'Server started on port', port)
    print('....')
    print('ctrl-c to quit server.')
    try:
        server.serve_forever()
    except KeyboardInterrupt:
        server.server_close()
        print(time.asctime(),"Server Stopped")
    except:
        server.server_close()
        print(time.asctime(),"Server Stopped")