Python实现一个多人聊天室,写出代码
时间: 2023-11-21 12:01:17 浏览: 93
Python实现的多人聊天室源码,基于socket tcp通信,使用tkinter做客户端界面,含可执行文件
5星 · 资源好评率100%
以下是一个简单的Python多人聊天室的代码实现,使用了socket和threading模块:
```
import socket
import threading
# 客户端线程
def handle_client(client_socket, address):
print(f"新连接来自 {address}")
while True:
message = client_socket.recv(1024).decode()
if message == "quit":
break
print(f"{address}: {message}")
# 把消息广播给所有客户端
for client in clients:
if client != client_socket:
client.send(f"{address}: {message}".encode())
# 关闭连接
client_socket.close()
print(f"{address} 已断开连接")
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定IP和端口号
host = "127.0.0.1"
port = 8000
server_socket.bind((host, port))
# 监听连接
server_socket.listen(5)
print("服务器已启动,等待连接...")
# 客户端列表
clients = []
while True:
# 接受新连接
client_socket, address = server_socket.accept()
# 把客户端加入列表
clients.append(client_socket)
# 启动新线程处理客户端
client_thread = threading.Thread(target=handle_client, args=(client_socket, address))
client_thread.start()
```
使用方法:
1. 在终端中运行以上代码。
2. 在另一个终端中使用telnet命令连接到聊天室的IP和端口号,例如:`telnet 127.0.0.1 8000`。
3. 开始聊天,输入消息后按回车发送。输入"quit"退出聊天室。
阅读全文