0
reply = s.recv(1024)

ip_buying_inter = pickle.loads(reply)

print('Internal Buying Price', repr(ip_buying_inter))

reply = s.recv(1024)

ip_selling_inter = pickle.loads(reply)

print('Internal Selling Price', repr(ip_selling_inter))

错误消息 回溯(最近一次调用最后一次):

文件“/home/pi/PycharmProjects/Mtecg/test3.py”,第 73 行,在

ip_selling_inter = pickle.loads(reply)

EOFError:用尽输入

4

1 回答 1

0

无法根据问题中的信息重现问题。但似乎pickle抱怨没有获得足够的数据进行解包,这可能是由于recv没有返回完整的“消息”。

看起来您假设您将使用单个recv. 情况并非如此:TCP 不是消息协议,它只关心字节流。send发送方的 a 可能需要接收方站点上的多个才能recv重建完整的消息。

如果一个人recv将返回完整的消息send取决于多个因素:连接的延迟、MTU(本地主机上的通信与以太网或 WLAN 上的通信不同)、系统的速度...... - 这可能解释了它似乎适用于 Windows 上的 pycharm,但不适用于 RasPi。

于 2019-11-15T20:15:56.917 回答