请用Python写一段服务器的代码,要求有两个客户端,两个客户端能通过服务器进行实时通讯。
时间: 2024-05-08 20:18:11 浏览: 224
好的,以下是一个简单的Python服务器代码,允许两个客户端进行实时通讯:
```python
import socket
import threading
# 服务器IP地址和端口号
SERVER_HOST = '0.0.0.0'
SERVER_PORT = 1234
# 创建一个TCP socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定服务器IP地址和端口号
server_socket.bind((SERVER_HOST, SERVER_PORT))
# 开始监听客户端连接
server_socket.listen()
print('等待客户端连接...')
# 定义一个处理客户端请求的函数
def handle_client(client_socket, client_address):
print(f'{client_address} 已连接!')
while True:
# 接收客户端消息
message = client_socket.recv(1024).decode()
if not message:
break
# 打印客户端消息
print(f'来自 {client_address}: {message}')
# 将消息发送给另一个客户端
for client in clients:
if client != client_socket:
client.send(message.encode())
# 关闭客户端连接
client_socket.close()
print(f'{client_address} 已断开连接!')
# 客户端socket列表
clients = []
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
# 将客户端socket添加到列表中
clients.append(client_socket)
# 开始处理客户端请求
client_thread = threading.Thread(target=handle_client, args=(client_socket, client_address))
client_thread.start()
```
这段代码创建了一个TCP socket服务器,可以接受两个客户端的连接,并且允许客户端之间进行实时通讯。当一个客户端发送消息时,服务器会将这个消息发送给另一个客户端。
阅读全文