Java网络编程:DatagramChannel与Multicast Sockets详解
1. DatagramChannel概述
在Java 1.4中,引入了 DatagramChannel 类,用于非阻塞的UDP应用程序,就像为非阻塞的TCP应用程序引入了 SocketChannel 和 ServerSocketChannel 一样。 DatagramChannel 是 SelectableChannel 的子类,可以注册到 Selector 上,这对于服务器来说非常有用,因为一个线程可以管理与多个不同客户端的通信。不过,由于UDP本质上比TCP更具异步性,所以这种效果相对较小。在UDP中,单个数据报套接字一直都可以处理来自多个客户端的输入和输出请求。 DatagramChannel 类的作用是使这些操作可以以非阻塞的方式进行,如果网络没有立即准备好接收或发送数据,方法会快速返回。
2. 使用DatagramChannel
DatagramChannel 是UDP I/O的一种近乎完整的替代抽象。虽然仍然需要使用 DatagramSocket 类将通道绑定到端口,但之后就不需要再使用它,也不需要使用 DatagramPacket 。相反,像使用 SocketChannel 一样,读写 ByteBuffer 。
超级会员免费看
订阅专栏 解锁全文
1460

被折叠的 条评论
为什么被折叠?



