我已经写了一个listen python udp代码来接收一个输出应该是1到42的数字的流,但是,输出似乎是42个符号而不是值(如此):
1450472711.51:@ 4 @ @ P @ $ @ @ @ @ @ @“@ $ @& @(@ * @,@。@ 0 @ 1 @ 2 @ 3 @ 4 @ 5 @ 6 @ 7 @ 8 @ 9 @:@; @< @ = @> @?@ @@ @@ A @ A@ B @ B@ C @ C@ D @ D@
这是代码:我嗅到了数据包,它们似乎都是378个数据包长,这种情况继续发生,所以我看不到任何丢包。
import socket,sys, ast , os
from time import ctime
import time
print >> sys.stderr, os.getcwd()
print >> sys.stderr , ctime()
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
ip = '192.168.10.101'
port = 25000
server_address = (ip, port)
sock.bind(server_address) # bind socket
sock.settimeout(2) # sock configuration
sock.setblocking(1)
print >> sys.stderr, 'able to bind'
i = 0
client = ''
byte = 378
while True:
if i == 0:
print >> sys.stderr, 'connected'
data,client = sock.recvfrom(byte)
print >> sys.stderr,time.time() ,":",data , "\n"
i= i+1
任何人都能解释为什么会这样吗?收到数据包后,我有什么转换吗?
谢谢你!答案 0 :(得分:1)
您正在打印一串二进制数据。要查看传输的实际二进制(按字节)数字,请尝试类似:
for c in data:
print ord(c)