import socket # socket 套接字模块
import threading # 线程模块
# 发送数据的功能函数
def send_masg(udp_socket):
# 接收用户输入的数据
send_content = input("请输入您要发送的数据:")
# 接收对方的IP地址和端口号
dest_ip = input("请输入对方ip地址:")
dest_port = int(input("请输入对方的端口号:"))
# 发送数据(及进行编码处理)
udp_socket.sendto(send_content.encode("UTF-8"),(dest_ip , dest_port))
# 接收数据的功能函数
def recv_msg(udp_socket):
while True:
# 接收数据每次接受1024字节数
recv_data , ip_port = udp_socket.recvfrom(1024)
# 解码
recv_content = recv_data.decode("UTF-8")
print(recv_content , ip_port)
if __name__ == ' __main__':
# 创建套接字
udp_socket = socket.socket(socket.AF_INET , socket.SOCK_DGRAM)
# 绑定端口
udp_socket.bind(("" , 8080))
# 创建线程
recv_thread = threading.Threadd(target=recv_msg, args=(udp_socket,))
# 保护线程
recv_thread.setDaemon(True)
# 启动线程
recv_thread.start()
# 功能选项
while True:
option = input("请输入功能选项 1.发送 0.退出:")
if option == "1":
send_msg(udp_socket)
elif option == "0":
break
# 退出套接字
udp_socket.close
多任务版UDP聊天器
最新推荐文章于 2022-10-20 21:01:09 发布