从UDP套接字恢复后,Python字节丢失

时间:2013-01-11 06:45:54

标签: python sockets udp

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()

我收到的字节应该是43个字节,但我从客户端收到的是

收到消息'b'\ x0f \ x00 \ x00 \ x00NR09G05164 \ x00''? 只有15个字节。为什么呢?

下面是原始字节43个字节

00 00 00 01 00 06 ec 44 76 a6 21 c2 00 00 08 00 45 00 00 2b 08 43 00 00 34 11 81 2b cb 52 50 db 67 0d 7a 19 24 2d 1a f7 00 17 83 26 0f 00 00 00 4e 52 30 39 47 30 35 31 36 34 00

1 个答案:

答案 0 :(得分:0)

print可能根本没有显示缺少的字节?检查len(data)值。

您无法通过UDP接收不完整的数据包,它将为您提供完整的数据报或根本不提供任何数据报。