Отправка и получение массивов через сокеты

Можно ли отправить массив через сокеты UDP с помощью Python? Я использую Python 2.5 и пытаюсь отправить простой массив, но он не работает. Он может успешно отправить массив, но когда я пытаюсь распечатать его с элементом массива, программа вылетает. Я не уверен, в чем заключается ошибка, поскольку я принимаю меры предосторожности и конвертирую данные в массив, но он не работает. Надеюсь, я объяснил проблему как можно яснее. Я был бы признателен за помощь!

# Client program

from socket import *
import numpy
from array import*

# Set the socket parameters
host = "localhost"
port = 21567
buf = 4096
addr = (host,port)

# Create socket
UDPSock = socket(AF_INET,SOCK_DGRAM)

def_msg = "===Enter message to send to server===";
print "\n",def_msg
a = array('i',[1,3,2])
# Send messages
while (1):
    data = raw_input('yes or now')
    if data!= "yes":
        break
    else:
        if(UDPSock.sendto(a,addr)):
            print "Sending message"

# Close socket
UDPSock.close()



# Server program

from socket import *

# Set the socket parameters
host = "localhost"
port = 21567
buf = 4096
addr = (host,port)

# Create socket and bind to address
UDPSock = socket(AF_INET,SOCK_DGRAM)
UDPSock.bind(addr)

# Receive messages
while 1:
    data,addr = UDPSock.recvfrom(buf)
    L = eval(data)
    if not data:
        print "Client has exited!"
        break
    else:
        print "\nReceived message '", L[1],"'"

# Close socket
UDPSock.close()
9
задан user 22 May 2012 в 22:22
поделиться