python socket多线程实现客户端与服务器连接
之前因为一些作业需要完成一个服务器监听多个客户端的程序,于是就用python写了这样的程序。话不多说,直接上代码。
server代码:
import json
import socket
import threading
import time
import struct
class Server():
def __init__(self):
self.g_conn_pool = {
} # 连接池
# 记录客户端数量
self.num =0
# 服务器本地地址
self.address = ('0.0.0.0', 8000)
# 初始化服务器
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.server_socket.bind(self.address)
self.server_socket.listen(128)
def accept_client(self):
"""
接收新连接
"""
while True:
client_socket, info = self.server_socket.accept() # 阻塞,等待客户端连接
print(client_socket,port)
# 给每个客户端创建一个独立的线程进行管理
thread = threading.Thread(target=self.recv_msg, args=(client_socket,info))