通过UDP发送列表

我正在使用套接字编程来发送 UDP 文本消息,并且工作正常。这是代码:


发送:


import socket

UDP_IP = "10.0.0.2"

UDP_PORT = 5005

MESSAGE = "Hello"

print "UDP target IP:", UDP_IP

print "UDP target port:", UDP_PORT

print "message:", MESSAGE

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP

sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))

接收:


import socket


UDP_IP = "10.0.0.2"

UDP_PORT = 5005

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP

sock.bind((UDP_IP, UDP_PORT))

while True:

  data, addr = sock.recvfrom(1024)

  print "received message:", data

现在我想更改我发送到列表的消息。我试图通过使用来做到这一点pickle。这是代码:


发送:


import socket

import pickle


UDP_IP = "10.0.0.2"

UDP_PORT = 5005

a = []

a.append('H')

a.append('G')

MESSAGE = pickle.dumps(a)

print "UDP target IP:", UDP_IP

print "UDP target port:", UDP_PORT

print "message:", MESSAGE

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP

sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))

接收:


import socket

import pickle


UDP_IP = "10.0.0.2"

UDP_PORT = 5005


sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP

sock.bind((UDP_IP, UDP_PORT))

while True:

  data, addr = sock.recvfrom(1024)

  print "received message:", data

  pickle.loads(data)

  print(data)

但是我没有在接收方得到正确的列表形式。这是输出:


(1p0

S'H'

p1

aS'G'

p2

a.


(1p0

S'H'

p1

aS'G'

p2

a.

怎么了?


饮歌长啸
浏览 202回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python