c++局域内的聊天室代码
时间: 2023-11-08 14:03:03 浏览: 46
以下是一个简单的局域网聊天室的代码示例:
```python
import socket
import threading
# 客户端处理线程
def handle_client(client_socket):
while True:
try:
data = client_socket.recv(1024).decode()
if not data:
break
print(data) # 打印聊天信息到终端
broadcast(data) # 将聊天信息广播给所有连接的客户端
except ConnectionResetError:
break
client_socket.close()
# 广播聊天信息给所有客户端
def broadcast(message):
for client in clients:
client.send(message.encode())
# 创建服务器端Socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8888))
server_socket.listen(10)
clients = [] # 存放连接到服务器的客户端
print('服务器已启动,等待客户端连接...')
# 不断接收客户端连接,启动一个线程来处理每个客户端
while True:
client_socket, _ = server_socket.accept()
clients.append(client_socket)
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
```
这是一个简单的基于Socket的聊天室示例,它使用了多线程来处理每个客户端的连接和消息接收。服务器端绑定在本地主机的8888端口上,并监听客户端连接。每当有新的客户端连接时,会启动一个新的线程来处理该客户端的消息接收。当任意一个客户端发送消息时,服务器会将该消息广播给所有连接的客户端,以达到实时聊天的效果。