【发布时间】:2011-10-17 13:22:27
【问题描述】:
我阅读了this question about the error that I'm getting,了解到 UDP 数据负载不能超过 64k。我读过的建议是使用 TCP,但在这种特殊情况下这不是一个选项。我正在与通过 UDP 传输数据的外部系统进行交互,但目前我无法访问该外部系统,因此我正在模拟它。
在某些情况下,我有超过 1,400,000 字节的数据消息,并且要求使用 UDP 协议。我无法更改协议(我更愿意使用 TCP 或基于 UDP 构建的可靠协议)。相反,我必须找到一种方法,通过 UDP 将大型有效负载从测试应用程序传输到我正在构建的系统中,并在我正在构建的系统中读取这些大型有效负载以进行处理。我也不必担心丢包——如果我没有得到数据报,我不在乎——只需等待下一个有效载荷到达。如果它不完整或丢失,只需将其全部扔掉并继续等待。我也事先不知道数据报的大小(它们的范围从几百字节到 1,400,000+ 字节。
我已经将发送和接收缓冲区的大小设置得足够大,但这还不够。我还能做什么?
【问题讨论】:
-
他们如何以大于最大大小的有效负载发送它们?我的意思是,您需要将它们编组/解组为合法大小的消息。
标签: java network-programming udp