udp网络程序流程
创建一个基于udp的网络程序流程很简单,具体步骤如下:
创建客户端套接字:socket
发送/接收数据:sendto/recvfrom
关闭套接字
注意
此外还要对飞秋发送协议的简要了解,会更清楚帮助理解:
基本格式:版本号:包编号:发送者姓名:发送者机器号:命令字(32表示发送消息):发送信息内容
举例:1:134871264:haogege:admin:32:你好,陌生人!
import socket
import random
# 判断是否是程序的入口
if __name__ == '__main__':
while 1:
# AF_INET 是ipv4 的类型
# sock_dgram 是UDP传输协议的类型
a = ['勇士你要去哪?', '我的剑就是你的剑', '树叶的一生只是为了归根吗?', '我命由我,天不可违', '机器人为你服务', '你好' '吗?珞', '我与杀戮之中盛放,一如黎鸣中的花朵']
send_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 固定端口
send_udp.bind(('', 9090))
i = random.randint(0, 6)
neirong = a[i] + '\n'
print(neirong + '\n')
# 发送数据
#模拟网络调试助手
#send_udp.sendto(neirong.encode('utf-8'), ('192.168.200.1', 8080))
#模拟飞秋
send_udp.sendto(('1:14524125:浩先生:hao:32:' + neirong).encode('gbk'), ('192.168.200.1', 2425))
recver, dst_ip = send_udp.recvfrom(1024)
# 对二进制数据进行解码
print(recver.decode('gbk', errors='ignore'), dst_ip)
# 关闭
send_udp.close()
飞秋大致显示效果:
简易接受显示(见谅):
网络调试助手:
本文只是简易制作希望对大家有用,如有不当还请包涵。