python udp 大文件_用Python提高UDP传输速度的最佳方法?

作者使用Python通过UDP在两台计算机间传输大文件,目前速度约为0.01GB/s,期望能显著提升。由于项目需求,必须使用UDP且主要关注接收端的效率。程序将大文件拆分为数据报发送,接收端再重组。文章询问是否存在更好的方法或优化策略以提高传输速度。
摘要由CSDN通过智能技术生成

我编写了一个Python程序,用于通过UDP发送和接收大文件。现在,我可以达到约0.01GB/s的速度时,在两台计算机之间传输的万兆以太网线。我希望能显著提高速度,但我不确定什么是最好的方法。在

不管怎样,我必须使用UDP进行传输。我编写的程序只是一个大型项目的测试,为该项目发送数据的设备不能利用TCP流。此外,我主要关注快速接收数据报的最佳方式,或者至少是确保接收端不会出现任何瓶颈的最佳方法。在

现在,我的程序的工作原理是将一个大文件分成几个部分,这些文件将成为要发送的数据报。这些数据报被发送,然后接收器做一些事情来确保它得到正确的数据并相应地进行排序。在

发送代码(细化到基本)buf = 32000 #Size of each chunk/packet

s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

host ="127.0.0.1"

port = 5005

addr = (host,port)

def read_in_chunks(infile, chunk_size=buf):

"""Chunk the file before we send it.

Arguments:

infile -- the file to chunk

chunk_size -- the size of the chunk in bytes (default 32KB)

"""

while True:

chunk = infile.read(chunk_size)

if chunk:

yield chunk

else:

# The chunk was empty, which means we're at the end of the file

return

def run():

for chunk in read_in_chunks(f):

if(s.sendto(chunk,addr) and s.sendto(id,addr)):

#Some acknowledgment stuff - removed for clarity (also noted to not impact performance)

local_ID += 1

接收代码:

^{pr2}$

我不确定优化我的代码是否是问题(有待测试),或者是否还有其他问题(更好?)提高文件传输速度的方法。我很抱歉,如果这里的细节是稀疏的,但请让我知道如果你需要更多的信息。在

谢谢!在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值