python - Python Networking Using Pickle -- 如何处理发送的不完整数据?
问题描述
def ReadData(self):
data = ''
try:
data = self.c.recv(12000)
except socket.error as e:
print(e)
try:
result = pickle.loads(data)
return result
except error as e:
print(e)
def SendData(self, addr, data):
sData = pickle.dumps(data)
addr.sendall(sData)
目前正在使用上面的代码,发送和读取数据非常简单(服务器中的SendData,客户端中的readdata);但是,我遇到了数据不完整的问题(我假设)并且它正在通过网络发送特定错误是无效的 unpickle key '\x14' (我在两个系统上使用完全相同版本的 Python 所以它与此无关)或类似的东西,我只能假设是发送不完整数据的结果。我不确定这样做的正确方法;也许使用一些分隔符并检查
解决方案
推荐阅读
- quickblox-android - 在 android-Quickblox 中检查两个用户之间是否存在对话框
- .net - 为什么应用程序会使用 CSC.EXE?
- javascript - 如何使用 axios "Content-Type": "application/x-www-form-urlencoded" 发送 Ints 数组
- php - 如何通过从我的数据库中选择不同的 patient_id 并在其上绘制图表来绘制数据?
- maven - 带有阴影的 JavaFX 构建,位置是必需的。它在看哪里?
- java - 根据文本量更改文本编辑的高度
- typescript - 如何修复有关命名空间的 ts lint 错误?
- javascript - 任意图表中的附加或独立 xAxis
- python - 如何使用python正确打印json响应
- linux - Collectd 无法读取 Ansible 发送的配置文件