Administrator
2023-08-25 dbc2ec056e478704cc352586a22e9e07755b15f0
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
import json
import socket
import socketserver
 
from huaxin_client.command_manager import TradeCommandManager
from utils import socket_util
 
 
class MyTCPServer(socketserver.TCPServer):
    def __init__(self, server_address, RequestHandlerClass):
        socketserver.TCPServer.__init__(self, server_address, RequestHandlerClass, bind_and_activate=True)
 
 
# 如果使用异步的形式则需要再重写ThreadingTCPServer
class MyThreadingTCPServer(socketserver.ThreadingMixIn, MyTCPServer): pass
 
 
class MyBaseRequestHandle(socketserver.BaseRequestHandler):
 
    def setup(self):
        pass
 
    def handle(self):
        host = self.client_address[0]
        super().handle()
        sk: socket.socket = self.request
        while True:
            try:
                # data = sk.recv(1024*1024, socket.MSG_WAITALL)
                data, header = socket_util.recv_data(sk)
                if data:
                    # TODO 处理数据
                    data_json = json.loads(data)
                    type_ = data_json['type']
                    TradeCommandManager.process_command(type_, None, data_json)
            finally:
                pass