Итак, я пытаюсь отправить массив по сокетам. Массив - это ось джойстика, так что x, y, z, слайдер.Попытка отправить массив поверх сокета
Итак я отправить его через сокет один раз, и я получаю его на другом конце, а затем unpickle его там, где я получаю ошибку
Это дает мне ошибку _pickle.UnpicklingError: unpickling stack underflow
им не совсем уверен, что это значит, но у меня есть прочитайте это потому, что массив отключается. Client (Использует 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)
Благодаря
Я использую переменную '= pickle.loads (извлекаться сообщение)', но он по-прежнему дает мне ошибка – ferret249
Данные Ok теряются где-то в отправке через сокет – ferret249
, вероятно, в том, что e 1 ... вместо этого он должен отправить какой-то терминальный подострый ... (который не может быть в рассоле идеально '\ x00 \ x01' или что-то в этом роде), а затем дождаться этого, а не просто ругаться, как только вы ничего не получите. .. просто догадка ... это похоже на вероятную точку отказа ... также использовать контрольные суммы или что-то или использовать протокол подтверждения связи, например TCP (lathoughh, если его просто локальный он действительно не должен терять пакеты ...) –