用python写一个聊天室程序
下面是一个简单的基于Socket的Python聊天室程序示例,包括服务器端和客户端:
服务器端代码:
import socket
import threading
def handle_client(client, address):
print(f"New connection from {address}")
while True:
msg = client.recv(1024).decode()
if not msg:
break
print(f"Received message: {msg}")
broadcast(msg)
client.close()
def broadcast(msg):
for client in clients:
client.send(msg.encode())
host = '127.0.0.1'
port = 5555
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
server.listen()
clients = []
print("Server is running...")
while True:
client, address = server.accept()
clients.append(client)
thread = threading.Thread(target=handle_client, args=(client, address))
thread.start()
客户端代码:
import socket
import threading
def receive_messages():
while True:
msg = client.recv(1024).decode()
print(msg)
host = '127.0.0.1'
port = 5555
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((host, port))
thread = threading.Thread(target=receive_messages)
thread.start()
while True:
msg = input()
client.send(msg.encode())
要使用此聊天室程序,您需要在一个终端窗口中运行服务器端代码,并在另一个终端窗口中运行客户端代码。
请注意,这只是一个简单的示例,没有进行错误处理和安全性检查。在实际应用中,您可能需要添加更多功能以确保程序的稳定性和安全性。