def recv_msg(udp_socket):
"""接收数据并显示"""
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 告诉socket是UDP
udp_socket.bind(server_address)
udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 255)
status = udp_socket.setsockopt(socket.IPPROTO_IP,
socket.IP_ADD_MEMBERSHIP,
socket.inet_aton(multi_cast_group) + socket.inet_aton('192.168.69.13'))
global curSpeed, curDis, curLim
while True:
recv_msg = udp_socket.recvfrom(60000)
recv_ip = recv_msg[1]
recv_msg = recv_msg[0] # 注意这里的编码如果是windows选择gbk,linux选择utf-8
print("接收到发送过来的信息:", str(recv_ip), recv_msg)
speed=struct.unpack('>h',recv_msg[36:38])
本来应该接收16进制格式的字节流,收到的是如下类型的:
明显不对,有没有大佬现身说法,万分感谢!