我正在使用 Java NIO 构建一个 UDP 通信系统,并通过 javadoc 浏览 API,我注意到通道有一个 write 原语和一个 send 原语。我已经对两者进行了原型设计并进行了尝试,但似乎没有任何变化,因为它们都提供了缓冲区。同样,我看的书似乎也无助于解开这个疑惑,于是我想问:channel.write和channel.send有什么区别?
提前致谢。
DatagramChannel .send()的 Javadoc告诉您区别
数据报从字节缓冲区传输,就像通过常规写操作一样。
此方法执行与 DatagramSocket 类的 send 方法完全相同的安全检查。也就是说,如果套接字没有连接到特定的远程地址并且已经安装了安全管理器,那么对于发送的每个数据报,此方法都会验证安全管理器的 checkConnect 方法是否允许目标地址和端口号。通过首先通过 connect 方法连接套接字,可以避免这种安全检查的开销。