我有一个很大的1GB文件,我试图发送到另一个节点。在发送者发送200个数据包(在发送完整文件之前)之后,代码跳出。说“Sendto no send space available”。可能是什么问题以及如何照顾它。通过UDP套接字发送的限制
除此之外,我们需要在此传输中获得最大吞吐量。那么我们应该使用哪种发送缓冲区大小来提高效率?
什么是我们可以用来传输文件而没有碎片的最大MTU?
感谢 日图
谢谢你的答案。实际上,我们的项目指定使用UDP,然后使用一些额外的代码来处理丢失的数据包。
现在我可以使用阻塞UDP套接字发送完整文件。
我正在emulab环境中运行整个设置,名为deter。我将链路丢失设置为0,但仍然有一些数据包丢失。这背后可能的原因是什么?即使我在发送每个数据包之后添加延迟(假设接收方在缓冲区满时丢弃数据包),仍然会丢失数据包。
需要更多细节。套接字是否无阻塞? –
我认为TCP将是文件传输的更好选择。你有使用UDP的理由吗?如果是这样,你有什么样的纠错? – feathj