import socket
# 1、使用UDP协议实现,A用户给B用户发送消息,B用户负责将A发送的消息放到文本日志里
# 1、创建udp套接字
from threading import Thread
socket_client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定ip
socket_client.bind(("127.0.0.1", 7788))
# 2、发送数据
def send():
try:
while True:
msg = input("发送的数据为:")
socket_client.sendto(msg.encode("utf-8"), ("127.0.0.1", 8888))
if msg == "88":
break
except:
print("聊天室关闭")
finally:
socket_client.close()
def receive():
try:
while True:
# 3.接收数据:
c_msg, ip = socket_client.recvfrom(512)
# 4、打印数据
print(f"{ip}发送的数据:{c_msg.decode('utf-8')}")
except:
print("聊天室关闭")
finally:
socket_client.close()
Thread(target=send).start()
Thread(target=receive).start()
```python
# 服务器端
import socket
# 1、使用UDP协议实现,A用户给B用户发送消息,B用户负责将A发送的消息放到文本日志里
# 1、创建socket套接字
from threading import Thread
socket_server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2、绑定套接字的ip地址
socket_server.bind(("127.0.0.1", 8888))
import datetime
def receive():
try:
while True:
# 3、接收数据
msg, ip = socket_server.recvfrom(512)
# 打印接收到的数据
print(f"{ip}发送的数据:{msg.decode('utf-8')}")
with open("socket_server_info", "a", encoding="utf-8") as w:
w.writelines(msg.decode('utf-8') + " " + datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S") + "\n")
except:
print("聊天室关闭")
finally:
socket_server.close()
def send():
try:
while True:
# 4、发送数据
s_msg = input("请输入发送的消息:")
socket_server.sendto(s_msg.encode("utf-8"), ("127.0.0.1", 7788))
if s_msg == "88":
break
except:
print("聊天室关闭")
finally:
socket_server.close()
Thread(target=receive).start()
Thread(target=send).start()
``
UDP 简易聊天室
最新推荐文章于 2023-02-02 14:35:21 发布