从udp接收符号,为什么?

时间:2015-12-18 21:20:53

标签: python network-programming udp

我已经写了一个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

任何人都能解释为什么会这样吗?收到数据包后,我有什么转换吗?

谢谢你!

1 个答案:

答案 0 :(得分:1)

您正在打印一串二进制数据。要查看传输的实际二进制(按字节)数字,请尝试类似:

for c in data:
    print ord(c)