当前位置: 首页 > 建站教程

怎么用Python打造一个多人聊天室

时间:2026-01-31 10:53:24

要使用Python创建一个多人聊天室,可以借助Socket模块来实现网络通信功能。以下是一个简单的示例代码:

    创建服务器端代码:
import socketimport threading# 服务器端IP和端口SERVER_HOST = '0.0.0.0'SERVER_PORT = 8888# 用于存储客户端连接clients = []def handle_client(client_socket):while True:try:message = client_socket.recv(1024).decode()print(message)broadcast(message, client_socket)except:clients.remove(client_socket)client_socket.close()breakdef broadcast(message, client_socket):for client in clients:if client != client_socket:try:client.send(message.encode())except:client.close()clients.remove(client)# 创建服务器Socketserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind((SERVER_HOST, SERVER_PORT))server_socket.listen(5)print(f"Server is running on {SERVER_HOST}:{SERVER_PORT}")while True:client_socket, client_address = server_socket.accept()clients.append(client_socket)print(f"{client_address} connected")client_thread = threading.Thread(target=handle_client, args=(client_socket,))client_thread.start()
    创建客户端代码:
import socketimport threading# 服务器端IP和端口SERVER_HOST = '127.0.0.1'SERVER_PORT = 8888def receive_messages(client_socket):while True:try:message = client_socket.recv(1024).decode()print(message)except:break# 创建客户端Socketclient_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client_socket.connect((SERVER_HOST, SERVER_PORT))print("Connected to the server")receive_thread = threading.Thread(target=receive_messages, args=(client_socket,))receive_thread.start()while True:message = input()client_socket.send(message.encode())

通过运行以上代码,就可以创建一个简单的多人聊天室。用户可以通过客户端连接到服务器,并发送消息给其他所有用户。在服务器端,所有接入的客户端都会被存储起来,并在接收到消息时广播给所有客户端。


上一篇:HTML中嵌入JS代码的方式有哪些
下一篇:Java MD5算法的原理及实现方法是什么
python
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素