【发布时间】:2016-07-18 20:39:26
【问题描述】:
通过 TCP 套接字接收大列表的最佳方式是什么?
我的代码如下所示。 当你必须收到一个大名单时,这显然不起作用。
print 'connection from', client_address
while True:
try:
data = pickle.loads(connection.recv(8192))
except EOFError:
print 'no more data from', client_address
break
【问题讨论】:
-
为什么不起作用?您通过一次请求 8192 个字节来对数据进行分块,这很不错,而且可能是您能做的最好的。您希望获得哪些改进?
-
请注意,
pickle不安全 - 如果您不明确信任您的来源,json.load可能是更好的选择跨度> -
@AkshatMahajan 它不适用于非常大的列表,因为我不获取列表中的字符串或项目,而是获取列表本身。
-
@WayneWerner 我会试试这个,但这不是我主要关心的问题。不过还是谢谢。