Java-NIO(八):DatagramChannel
来源:互联网 发布:dps数据处理软件官网 编辑:程序博客网 时间:2024/05/16 19:12
Java NIO中的DatagramChannel是一个能收发UDP包的通道。
操作步骤:
1)打开 DatagramChannel
2)接收/发送数据
同样它也支持NIO的非阻塞模式操作,例如:
2 public void send() throws IOException { 3 DatagramChannel channel = DatagramChannel.open(); 4 channel.configureBlocking(false); 5 6 ByteBuffer byteBuffer = ByteBuffer.allocate(1024); 7 8 Scanner scanner = new Scanner(System.in); 9 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");10 while (scanner.hasNext()) {11 String line = scanner.next();12 byteBuffer.put((format.format(new Date()) + ":" + line).getBytes());13 byteBuffer.flip();14 15 channel.send(byteBuffer, new InetSocketAddress("127.0.0.1", 9899));16 byteBuffer.clear();17 }18 19 channel.close();20 }21 22 @Test23 public void receive() throws IOException {24 DatagramChannel channel = DatagramChannel.open();25 channel.configureBlocking(false);26 channel.bind(new InetSocketAddress(9899));27 28 Selector selector = Selector.open();29 channel.register(selector, SelectionKey.OP_READ);30 31 while (selector.select() > 0) {32 Iterator<SelectionKey> selectionKeys = selector.selectedKeys().iterator();33 while (selectionKeys.hasNext()) {34 SelectionKey selectionKey = selectionKeys.next();35 if (selectionKey.isReadable()) {36 ByteBuffer buffer = ByteBuffer.allocate(1024);37 channel.receive(buffer);38 buffer.flip();39 System.out.println(new String(buffer.array(), 0, buffer.limit()));40 buffer.clear();41 }42 43 selectionKeys.remove();44 }45 }46 47 }
阅读全文
0 0
- Java-NIO(八):DatagramChannel
- (十) Java NIO DatagramChannel
- Java NIO系列教程(七) DatagramChannel
- Java NIO系列教程(七) DatagramChannel
- Java NIO系列教程(七) DatagramChannel
- Java NIO系列教程(七) DatagramChannel
- Java NIO教程(十)DatagramChannel
- Java NIO系列教程(七) DatagramChannel
- Java NIO系列教程(10):DatagramChannel
- Java NIO系列教程(七) DatagramChannel
- Java NIO系列教程(七) DatagramChannel
- Java NIO DatagramChannel
- Java NIO(11-DatagramChannel)
- Java NIO DatagramChannel
- java nio(四):DatagramChannel
- Java NIO (十) DatagramChannel
- Java NIO DatagramChannel
- Java NIO DatagramChannel
- 多多金服logo
- 跨域访问header的问题
- 利用二分法解决 leetcode 378. Kth Smallest Element in a Sorted Matrix
- 打开App显示文件已损坏,打不开,您应该将它移到废纸篓,怎么办?
- lintcode--数据流中第一个唯一的数字
- Java-NIO(八):DatagramChannel
- ServletResponse接口,HttpServletResponse接口
- Pibot介绍
- JAVA中的变量
- AS编译c/c++生成so文件
- Markdown小技巧:代码格式、缩进和字体大小
- Java-NIO(九):管道 (Pipe)
- 数据结构直接插入排序
- awvs扫描器的使用