Python 搭建多线程服务端

Python 搭建多线程服务端

     使用python搭建多线程服务端需要使用socketserver的ThreadingTCPServer方法。并且需要重写setup()、handel()、finish()这三个函数,具体的流程如下:

import socketserver
import time
import threading
HOST = 'localhost'
PORT = 9600
ADDR = (HOST, PORT)
mutex = threading.Lock()
class WebSocketServer(socketserver.BaseRequestHandler):

    def finish(self):
        self.request.close()

    def setup(self):
        # set recv timetout
        self.request.settimeout(10)
        print('te')

    def send_data_to_client(self,data):
        # python3 send data type must be bytes,use encode transfer data to bytes
        # python2 send data type is str
        self.request.send(data.encode())

    def handle(self):#在这里完成你所需要的操作
        while True:
            try:
                # python3 recv data type is bytes,through decode to str
                # python2 recv data type is str
                data = self.request.recv(1024).decode()

                time.sleep(15)
            except Exception as e:
                print(e)
                break
                pass
            if len(data) == 0:
                break

            print(self.client_address)



if __name__ == "__main__":
    # if port is localhost,clint can not connect through other pc,enven if they are in local area network;
    # so, if client can connect server through other pc,port is ''
    Server = socketserver.ThreadingTCPServer(('localhost', 1080), WebSocketServer)
    # Server = socketserver.ThreadingTCPServer(('', 1080), WebSocketServer)
    Server.serve_forever()
       关于QT的Socket多线程,请参考:http://blog.csdn.net/lovelyaiq/article/details/76691735

你可能感兴趣的:(Python)