绑定一个 UDP 套接字 (Bun.udpSocket())
要创建一个新的(绑定的)UDP 套接字:
发送数据报
指定要发送的数据,以及目标端口和地址。send 不执行 DNS 解析,因为它旨在用于低延迟操作。
接收数据报
创建套接字时,添加回调以指定接收数据包时应执行的操作:连接
虽然 UDP 没有连接的概念,但许多 UDP 通信(尤其是作为客户端时)只涉及一个对等方。 在这种情况下,将套接字“连接”到该对等方可能会带来好处,这指定了所有数据包发送的地址, 并限制只接收来自该对等方的数据包。使用 sendMany() 一次发送多个数据包
如果你想一次发送大量数据包,合并发送可以避免为每个包调用系统调用的开销。
这可以通过 sendMany() API 实现:
对于未连接套接字,sendMany 接受一个数组作为唯一参数。每三项描述一个数据包:
第一项是要发送的数据,第二项是目标端口,第三项是目标地址。
sendMany 仅接受一个数组,每个元素表示要发送给对等方的数据。
sendMany 返回成功发送的数据包数。与 send 一样,sendMany 只接受有效的 IP 地址作为目标,
因为它不执行 DNS 解析。
处理背压
可能会发生你发送的数据包无法放入操作系统的数据包缓冲区。当出现以下情况时,你可以检测到这种情况:send返回falsesendMany返回的数字小于你指定的数据包数量。在这种情况下,一旦套接字变得可写,drain套接字处理程序会被调用: