Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我在Rasperi Pi Pycharm中运行下面的代码时,我得到了一个错误(Python3.5)。但在windows Pycharm中运行良好_Python_Sockets_Pickle_Communication_Eoferror - Fatal编程技术网

当我在Rasperi Pi Pycharm中运行下面的代码时,我得到了一个错误(Python3.5)。但在windows Pycharm中运行良好

当我在Rasperi Pi Pycharm中运行下面的代码时,我得到了一个错误(Python3.5)。但在windows Pycharm中运行良好,python,sockets,pickle,communication,eoferror,Python,Sockets,Pickle,Communication,Eoferror,错误消息 回溯(最近一次呼叫最后一次): 文件“/home/pi/PycharmProjects/Mtecg/test3.py”,第73行,在 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)

错误消息 回溯(最近一次呼叫最后一次):

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

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))

EOFError:输入不足

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

看起来您假设您将通过一个
recv
获得完整的pickle消息。不需要这样:TCP不是消息协议,只关心字节流。发送方的
send
可能需要接收方站点上的多个
recv
,以便重建完整的消息

如果单个
recv
将返回
send
中使用的完整消息,则取决于多个因素:连接延迟、MTU(本地主机上的通信与以太网或WLAN上的通信不同)、系统速度…-这也许可以解释它似乎在Windows上与pycharm一起工作,但在RasPi上却不起作用

ip_selling_inter = pickle.loads(reply)