python UDP聊天室 完整代码
时间: 2024-06-04 08:05:36 浏览: 63
Python UDP聊天室的完整代码如下:
服务端代码:
```python
import socket
# 创建UDP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定IP和端口号
server_addr = ('127.0.0.1', 8000)
server_socket.bind(server_addr)
print('服务器已启动...')
while True:
# 接收客户端发送的数据
data, client_addr = server_socket.recvfrom(1024)
print('客户端 %s 发送的消息:%s' % (client_addr, data.decode()))
# 将消息发送给所有客户端
for client in clients:
server_socket.sendto(data, client)
# 添加客户端到列表中
if client_addr not in clients:
clients.append(client_addr)
```
客户端代码:
```python
import socket
import threading
# 创建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 服务器IP和端口号
server_addr = ('127.0.0.1', 8000)
# 接收消息的方法
def recv_msg():
while True:
try:
# 接收服务器发送的消息
data, server = client_socket.recvfrom(1024)
print(data.decode())
except:
print('接收消息出现异常!')
break
# 启动接收消息的线程
threading.Thread(target=recv_msg).start()
while True:
try:
# 发送消息给服务器
msg = input()
client_socket.sendto(msg.encode(), server_addr)
except:
print('发送消息出现异常!')
break
# 关闭套接字
client_socket.close()
```
运行方式:
1. 先运行服务端代码,打开一个命令行窗口,进入代码所在的目录,输入以下命令运行:
```python server.py```
2. 再运行客户端代码,打开另一个命令行窗口,进入代码所在的目录,输入以下命令运行:
```python client.py```
3. 客户端可以运行多个实例,以实现多人聊天。
阅读全文