send 抽象方法
- List<
int> buffer, - InternetAddress address,
- int port
异步发送一个数据报。
返回写入的字节数。这始终是 buffer
的大小或 0
。
0
返回值表示发送数据报将会阻塞,而且 send 调用可以再次尝试。
buffer
大小返回值表示已经向操作系统提出了发送数据报的请求。但这并不表示操作系统成功发送了数据报。如果在尝试发送数据报时发生本地失败,则会将一个错误事件添加到 Stream。如果在网络或远程失败的情况下则不会报告。
IPv4 UDP 数据报的最大大小为 65535 字节(包括数据和头部),但由于操作系统限制和网络的最大传输单元(MTU),实用的最大大小可能要低得多。
某些 IPv6 实现可能支持高达 4GB 的有效负载(请参阅 RFC-2675),但这种支持是有限的(请参阅 RFC-6434),并在后来的标准中被删除(请参阅 RFC-8504)。
Chromium 团队的实证测试表明,大于 1350 的有效负载无法可靠接收。
实现方式
int send(List<int> buffer, InternetAddress address, int port);