【发布时间】:2018-06-12 23:43:20
【问题描述】:
我想将文本文件中的字符串发送到我的本地端口,但我必须为每个字符串打开连接并关闭它。因此,数据流很慢。(几乎在两秒内1个字符串)。我怎样才能让它更快?
while 1:
conn, addr = s.accept()
line_number = random.randint(1,2261074)
liste.append(line_number)
line = linecache.getline(filename,line_number)
sendit = line.split(" ")[1]
print type(sendit)
print "sending: " + sendit
conn.send(sendit)
conn.close()
print('End Of Stream.')
【问题讨论】:
-
减慢发送速度的主要因素是您总是打开新连接。这在很大程度上受到网络延迟的限制。因此,只有放弃此概念并始终使用相同的 TCP 连接,才有可能实现重大加速。但“我必须为每个字符串打开连接并关闭它” 建议您必须遵守此行为。在这种情况下:不可能有很大的加速。
-
实际上我的主要目的是将数据发送到我的端口,但火花流无法接收数据。所以,在这里,link 他们建议我每次都打开和关闭连接。
-
您尝试打开一次,发送所有内容,然后关闭。现在您在发送每个字符串后打开和关闭。有没有什么方法可以在每发送 N 行后打开和关闭连接?
标签: python sockets apache-spark stream spark-streaming