gpt4 book ai didi

python - 我有一个 cPickle 错误,不知道他的意思,也许有人知道这是什么意思?

转载 作者:行者123 更新时间:2023-11-28 16:50:36 24 4
gpt4 key购买 nike

我使用一个进程通信 RMC,其代码可以在下面找到:

    HOST = ''     # local host
PORT = 50000
SERVER_ADDRESS = HOST, PORT

# set up server socket
s = socket.socket()
s.bind(SERVER_ADDRESS)
s.listen(1)

while True:
conn, addr = s.accept()
connFile = conn.makefile()
name, args, kwargs = cPickle.load(connFile)
'''name = cPickle.load(connFile)
args = cPickle.load(connFile)
kwargs = cPickle.load(connFile)'''
res = _exportedMethods[name](*args,**kwargs)
cPickle.dump(res,connFile) ; connFile.flush()
conn.close()

这是客户网站:

class RemoteFunction(object):
def __init__(self,serverAddress,name):
self.serverAddress = serverAddress
self.name = name
def __call__(self,*args,**kwargs):
s = socket.socket()
s.connect(self.serverAddress)
f = s.makefile()
cPickle.dump((self.name, args, kwargs), f)
'''cPickle.dump(self.name,f)
cPickle.dump(args,f)
cPickle.dump(kwargs,f)'''
f.flush()
res = cPickle.load(f)
s.close()
return res

def machine_changed_signal(machine):
HOST = ''
PORT = 50000
SERVER_ADDRESS = HOST, PORT
advise = RemoteFunction(SERVER_ADDRESS,'changes')
advise(machine)

执行后,我收到以下错误消息:

Traceback (most recent call last):
File "/home/manch011/disserver/src/disserver/gui/backends/receiver.py", line 71, in run
args = cPickle.load(connFile)
cPickle.UnpicklingError: pickle data was truncated

在我更改新的之后,我收到以下错误消息:

Traceback (most recent call last):
File "/home/manch011/disserver/src/disserver/gui/backends/receiver.py", line 69, in run
name, args, kwargs = cPickle.load(connFile)
EOFError

我不熟悉 cPickle,因此无法理解这一点,有人可以向我解释一下吗?

提前致谢奇思

最佳答案

当您在类文件对象 (connFile = conn.makefile()) 中转换您的套接字时,您套接字中的所有内容都可以在您的文件中使用。当你第一次执行 cPickle.load(connFile) 时,套接字/文件中的所有内容都由 pickle 加载,因此在第二次调用时,没有任何东西可以解开,这就是 pickle在引发异常时提示。

您的所有数据在第一个 cPickle.load(connFile) 处被取消,如果您想提取函数名称、args 和 kwargs,请尝试发送包含这些数据的元组:

客户端:

cPickle.dump((function_name, args, kwargs), client_socket_as_file)

服务器端

name, args, kwargs = cPickle.load(connFile)

关于python - 我有一个 cPickle 错误,不知道他的意思,也许有人知道这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8166722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com