用python的socket 写出服务器端的多线程代码
以下是一个简单的Python多线程服务器端代码示例:
import socket
import threading
SERVER_HOST = 'localhost'
SERVER_PORT = 8000
BUFFER_SIZE = 1024
def handle_client(client_socket):
request = client_socket.recv(BUFFER_SIZE)
print(f'Received request: {request.decode()}')
response = 'Hello, client!'
client_socket.send(response.encode())
client_socket.close()
def start_server():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind((SERVER_HOST, SERVER_PORT))
server_socket.listen(1)
print(f'Server listening on {SERVER_HOST}:{SERVER_PORT}')
while True:
client_socket, client_address = server_socket.accept()
print(f'Accepted connection from {client_address[0]}:{client_address[1]}')
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
if __name__ == '__main__':
start_server()
在上述代码中,我们首先定义了服务器的主机和端口号,以及缓冲区大小。接着,我们定义了一个handle_client函数,该函数在接收到客户端请求后会向客户端发送一个简单的响应。然后,我们定义了一个start_server函数,该函数创建了一个TCP套接字并开始监听客户端连接。当有客户端连接时,我们创建一个新的线程来处理客户端请求,以便服务器可以同时处理多个客户端请求。最后,我们在__main__函数中调用start_server函数来启动服务器。
请注意,这只是一个简单的示例代码,实际应用中可能需要更复杂的处理逻辑和更严格的安全措施
原文地址: https://www.cveoy.top/t/topic/ccIf 著作权归作者所有。请勿转载和采集!