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);