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