一、建立socket连接
packet=[0x55,0xab,00,00,00,00,00,00,00,00]#发送数据包内容
cmdpacket = bytearray(packet)
socket_ctl = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)#定义一个UDP协议套接字,udp协议不区分客户端和服务端,只有发送和接收
socket_ctl.bind(("", 5051))#定义发送端IP和端口,不输入默认电脑IP
IP_0=str("172.16.2.1")#将输入文本值定义到变量IP
COM_0=int(5050)#将输入文本值定义到变量端口
print(packet)#打印发送的字符包
controller=(IP_0,COM_0)#定义目标socket IP地址和端口号
socket_ctl.sendto(cmdpacket,controller)#发送socket信息
bdata, client = socket_ctl.recvfrom(1500)#接收socket目标对象发送的数据,并赋值给指定变量
print(client)#打印目标对象IP和端口号二、对接收数据包进行处理
list_bdata=list(bdata)#将获取数据转为列表的形式
new_pha_36=list_bdata[36] & 127#获取指定位置的最新数据三、对变化信息进行判断
list_bdata=list(bdata)#将获取数据转为列表的形式
new_pha_36=list_bdata[36] & 127#获取指定位置的最新数据四、执行固定方法
if pha_36_flag==1:#标记值变化时执行操作
print("标记值为1 计时器置零")
number_36=0
pha_36_flag=0
else:#未变化时执行操作
number_36 +=1
print("计时器累加",number_36) 完成代码:
import sys
import socket
import os
number_36=0#计数器赋初始值
old_pha_36=0#对比数据初始值
packet=[0x55,0xab,00,00,00,00,00,00,00,00]#发送数据包内容
cmdpacket = bytearray(packet)
socket_ctl = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)#定义一个UDP协议套接字,udp协议不区分客户端和服务端,只有发送和接收
socket_ctl.bind(("", 5051))#定义发送端IP和端口,不输入默认电脑IP
IP_0=str("172.16.2.1")#将输入文本值定义到变量IP
COM_0=int(5050)#将输入文本值定义到变量端口
print(packet)#打印发送的字符包
controller=(IP_0,COM_0)#定义目标socket IP地址和端口号
socket_ctl.sendto(cmdpacket,controller)#发送socket信息
bdata, client = socket_ctl.recvfrom(1500)#接收socket目标对象发送的数据,并赋值给指定变量
print(client)#打印目标对象IP和端口号
list_bdata=list(bdata)#将获取数据转为列表的形式
new_pha_36=list_bdata[36] & 127#获取指定位置的最新数据
if old_pha_36 !=new_pha_36:#对数据是否发生变化进行判断
pha_36_flag=1#更改标记值
old_pha_36=new_pha_36#更新旧数据内容
if pha_36_flag==1:#标记值变化时执行操作
print("标记值为1 计时器置零")
number_36=0
pha_36_flag=0
else:#未变化时执行操作
number_36 +=1
print("计时器累加",number_36)
该代码实现了一个使用Python的UDP套接字进行通信的例子,包括发送数据包,接收响应,处理接收到的数据,并根据特定位置的数据变化进行计数或重置计数器的操作。
509

被折叠的 条评论
为什么被折叠?



