从UDP套接字接收后缺少Python字节
我收到的字节应该是43字节,但我从客户端收到的是 收到消息“b”\x0f\x00\x00\x00NR09G05164\x00“”? 只有15个字节。为什么? 下面是原始字节43字节从UDP套接字接收后缺少Python字节,python,sockets,udp,Python,Sockets,Udp,我收到的字节应该是43字节,但我从客户端收到的是 收到消息“b”\x0f\x00\x00\x00NR09G05164\x00“”? 只有15个字节。为什么? 下面是原始字节43字节 00 00 01 00 06 ec 44 76 a6 21 c2 00 08 00 45 00 00 2b 08 43 00 34 11 81 2b cb 52 50分贝 67 0d 7a 19 24 2d 1a f7 00 17 83 26 0f 00 4e 52 30 39 47 30 35 31 36 34 0
00 00 01 00 06 ec 44 76 a6 21 c2 00 08 00
45 00 00 2b 08 43 00 34 11 81 2b cb 52 50分贝
67 0d 7a 19 24 2d 1a f7 00 17 83 26 0f 00
4e 52 30 39 47 30 35 31 36 34 00
可能缺少的字节不会通过打印显示出来
?检查len(数据)
value
您不能通过UDP接收不完整的数据包,它将向您发送完整的数据报,或者根本不发送任何数据报。已检查的Len(数据)仅为15字节您是否负责服务器端?你能出示负责发送的代码吗?(顺便说一句,UDP连接较少,因此您的
if not data
块没有意义。)实际上,如果not data不会发生,问题是我无法接收完整的数据包>“为什么您要在try
块中放置简单的变量赋值?
import socket
import sys
import datetime
import os
try:
username = "root"
password = "Apacheah64"
db_name = "DB_GPS"
table_name = "Tbl_GPS"
host = ""
port = 6903
buf = 4096
except IndexError:
sys.exit(1)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
while 1:
data = s.recv(buf)
if not data:
print("Client has exited!")
break
else:
print("\nReceived message '", data,"'")
# Close socket
s.close()