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:输入用完
无法根据问题中的信息重现问题。但pickle似乎抱怨没有得到足够的数据进行解包,这可能是由于recv
没有返回完整的"消息"。
看起来您假设您将通过一个recv
获得完整的pickle消息。不需要这样:TCP不是一个消息协议,而只关心字节流。并且发送方的send
可能需要接收方站点上的多个recv
来重建完整消息。
如果单个recv
将返回send
中使用的完整消息,这取决于多个因素:连接的延迟、MTU(本地主机上的通信与以太网或WLAN上的通信不同(、系统的速度…-这可能解释了它在Windows上似乎可以使用pycharm,但在RasPi上却不能。