python tcp多人聊天室
时间: 2023-10-19 14:07:05 浏览: 140
Python实现的多人聊天室源码,基于socket tcp通信,使用tkinter做客户端界面,含可执行文件
5星 · 资源好评率100%
可以使用Python的socket模块来实现一个TCP多人聊天室。下面是一个简单的示例代码:
```python
import socket
import threading
def handle_client(client_socket, address):
while True:
# 接收客户端发送的消息
data = client_socket.recv(1024).decode('utf-8')
if not data:
# 如果客户端断开连接,则退出循环
break
print(f"收到来自{address}的消息:{data}")
# 向所有客户端发送消息(广播)
for client in clients:
client.sendall(data.encode('utf-8'))
# 关闭客户端连接
client_socket.close()
def start_server():
# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8888))
server_socket.listen(5)
print("服务器已启动,等待客户端连接...")
while True:
# 接受客户端连接请求
client_socket, address = server_socket.accept()
print(f"客户端{address}已连接")
# 创建新的线程处理客户端连接
client_thread = threading.Thread(target=handle_client, args=(client_socket, address))
client_thread.start()
# 存储所有客户端套接字的列表
clients = []
start_server()
```
这个示例代码使用了`socket`模块来创建服务器和客户端之间的TCP连接。服务器接受客户端连接请求后,为每个客户端创建一个新的线程,用于处理该客户端的消息收发。当有客户端发送消息时,服务器会将该消息广播给所有连接的客户端。
注意:这只是一个简单的示例,没有处理异常情况和安全性等问题。在实际应用中,可能需要进一步完善代码。
阅读全文