本文共 1288 字,大约阅读时间需要 4 分钟。
from socket import *from threading import Threadfrom time import ctimedef send(send_socket, ip, port): while True: # 冒号隔开--》1:版本,2:消息的序号,3:用户名,4:主机名,5:指令(32是发送指令) # 发送前编码 send_socket.sendto(("1.0:3001:cxj:顶点5:32)"+input("输入发送数据:")).encode('gbk'),(ip,port)) print(ctime(), "\n消息已发送\n")def recp(recp_socket, ip, port): while True: recp_data = recp_socket.recvfrom(1024) print("接收到的原始数据",recp_data) # 接收并解码 recp_content = recp_data[0].decode("gbk") recp_order = recp_content.split(":")[4] # 进行回应,防止对方以为不在线而一直给这里发数据,及防止对方暴力发送 # 下面这句删了试试? recp_socket.sendto(recp_content.encode("gbk"),(ip.port)) # 接受指令是288 if recp_order == "288": print(ctime()) print(recp_content.split(":")[-4]) # 接收到的数据 recp_msg = recp_content.split(":")[-1] # 打印对方发过来的数据 print("**",recp_msg,"****")udp_socket = socket(AF_INET,SOCK_DGRAM)# 插卡 0-1023 1024-65535udp_socket.bind(("",8888)) # 8888可自己定义# 确定对方号码remote_ip = input("请输入目的IP")# 开通业务 半工 半双工 全双工# 这里都是本机发送与接受,所以remote_ip都是自己,2425是飞秋端口号t1 = Thread(target=send,args=(udp_socket,remote_ip, 2425))t2 = Thread(target=recp,args=(udp_socket,remote_ip, 2425))t1.start()t2.start()
打印出来的发送与接收指令代码,用来判断取数据:
转载地址:http://icwsi.baihongyu.com/