java的NIO之UDP用法
来源:互联网 发布:淘宝十字绣成品 编辑:程序博客网 时间:2024/05/16 10:52
Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。
服务器端代码
package com.test.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.DatagramChannel;public class TestUDPServer {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {DatagramChannel channel=DatagramChannel.open();channel.socket().bind(new InetSocketAddress(9999));ByteBuffer buf=ByteBuffer.allocate(48);buf.clear();/*阻塞,等待发来的数据*/channel.receive(buf);/*设置缓冲区可读*/buf.flip();/*循环读出所有字符*/while(buf.hasRemaining()){System.out.print((char)buf.get());}}}客户端代码
package com.test.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.DatagramChannel;public class TestUDPClient {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {DatagramChannel channel=DatagramChannel.open();String newData="hello,itbuluoge!"+System.currentTimeMillis();ByteBuffer buf=ByteBuffer.allocate(48);buf.clear();buf.put(newData.getBytes());buf.flip();/*发送UDP数据包*/int bytesSent=channel.send(buf, new InetSocketAddress("127.0.0.1",9999));}}
实际上,上述代码功能非常简单,就是服务器监听,客户端发送一个UDP数据包,如果服务器没有监听或者已经关闭,客户端发送也不会抛出异常,因为UDP就是面向非连接的协议。
0 0
- java的NIO之UDP用法
- Java的NIO之用于UDP的DatagramChannel
- Java IO与NIO的UDP开发
- Java NIO学习-UDP的例子
- Java NIO DatagramChannel UDP
- java NIO之管道Pipe()的用法
- java的NIO管道用法
- java nio 基础之Buffer 用法
- java nio 基础之Select 用法
- Java Nio UDP 消息发送
- Java的NIO之FileChannel
- Java NIO操作Socket的用法
- JAVA NIO(一):Buffer.mark()的用法
- Java NIO——6 基于非阻塞编程UDP NIO的例子
- Java NIO——6 基于非阻塞编程UDP NIO的例子
- Java nio ByteBuffer用法
- Java NIO 之 NIO 简介
- Java NIO 的前生今世 之二 NIO Channel 小结
- hadoop2.2 在伪分布式环境下安装hbase
- 判断浮点数值的无穷大和无效值
- BIND配置文件详解(三)
- 中国机床行业现状与趋势分析
- jquery-easyui的datagrid里分页的下拉框有没有属性去掉的
- java的NIO之UDP用法
- Ajax技术介绍
- [Coursera][Rice] An introduction to interactive Programming in Python Week 1
- mysql添加主键,修改自增长值
- SQL语句关于rtrim及ltrim 函数
- 深度学习软件资源列表
- Linux负载均衡实现之一:搭建keepalived服务
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- SSh结合Easyui实现Datagrid的分页显示