【发布时间】:2014-10-13 14:34:44
【问题描述】:
我和一个朋友正在做一个项目,我们需要使用 VB.Net 构建一个可靠的 UDP 客户端/服务器。我们的事情运行良好,但我们仍然无法解决的一件事是如何为传入的数据动态分配一个(字节)缓冲区。现在我们必须硬编码一个最大值/MTU(或者使用一个非常大的缓冲区大小并在我们完成接收后调整它的大小)。有谁知道无需指定接收缓冲区大小即可完成此操作的方法?
基本上,在使用大小为 x 的缓冲区调用套接字上的接收函数之前,我们想知道 x,以便我们可以分配适当大小的缓冲区。也许这是您必须处理的所有套接字编程中的一个问题??
【问题讨论】:
-
你好。你能更清楚地说明你在说什么缓冲区吗?我相信 Windows 核心,操作系统本身为 UDP 维护一个缓冲区。如果你使用 Socket.ReceiveFrom,它会从你那里接受一个字节数组(另一个缓冲区)来放入数据。你说的是哪个缓冲区?我可以知道吗?