好的,我试图通过套接字发送一个数组。阵列是操纵杆的轴,因此x,y,z,滑块。
然后我通过套接字发送一次,然后在另一端收到它,然后在我收到错误的地方取消它
它给了我错误_pickle.UnpicklingError: unpickling stack underflow
我不确定它意味着什么,但我读过它是因为数组被切断了。
客户端(使用Pygame获取操纵杆轴)
x = j.get_axis(0)
y = j.get_axis(1)
slide = j.get_axis(2)
z = j.get_axis(3)
array = (x, y, slide, z)
send_array = pickle.dumps(array)
只需使用socket.send(send_array)
发送数组
然后我收到并尝试将其打印用于测试目的。
raw_message = sc.recv(1024)
(data1, data2, data3, data4) = pickle.loads(raw_message)
print (data1)
由于
答案 0 :(得分:1)
客户端:
import socket, pickle
HOST = 'localhost'
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
arr = (YOUR ARRAY)
data_string = pickle.dumps(arr)
s.send(data_string)
data = s.recv(4096)
data_arr = pickle.loads(data)
s.close()
print 'Received', repr(data_arr)
服务器:
import socket
HOST = 'localhost'
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(4096)
if not data: break
conn.send(data)
conn.close()