ByteBuf的使用

1.pom的依赖

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>5.0.0.Alpha2</version>
    <!-- <version>4.1.24.Final</version> -->
</dependency>

2.ByteBuf的使用

2.1使用UDP发送消息

 /**
     * 发送消息
     * @param byteBuf
     */
    public  void SendMessage( ByteBuf byteBuf){
        EventLoopGroup group = new NioEventLoopGroup();
        try {
            Bootstrap bootstrap = new Bootstrap();
            bootstrap.group(group)
                    .channel(NioDatagramChannel.class)
                    .handler(new ChannelInitializer<NioDatagramChannel>() {
                        @Override
                        protected void initChannel(NioDatagramChannel ch) {
                            ChannelPipeline pipeline = ch.pipeline();
                        }
                    });
            Channel channel = bootstrap.bind(9092).sync().channel();
            System.out.println("1111111");
            System.out.println(textconfig.getHost()+"======================="+textconfig.getPort2());
            InetSocketAddress address = new InetSocketAddress(textconfig.getHost(),textconfig.getPort2());
            channel.writeAndFlush(new io.netty.channel.socket.DatagramPacket(byteBuf, address)).sync();
//            channel.closeFuture().await();
        } catch (Exception e) {
//            e.printStackTrace();
        } finally {
            group.shutdownGracefully();
        }
    }

2.2接收UDP的消息

DatagramSocket ds=new DatagramSocket(Integer.parseInt(value));
byte[] buf = new byte[5000];//接受UDP端口数据
//创建接收数据的UDP包 new DatagramPacket(byte[],length);
java.net.DatagramPacket dp = new java.net.DatagramPacket(buf, 5000);
//接受数据
ds.receive(dp);
ByteBuf byteBuf = Unpooled.buffer(0);
byteBuf.writeBytes(buf, 0, dp.getLength());

2.3 ByteBuf的使用的方法

   2.3.1:根据字节的下标获取到对应的的字节的数据

       example:

              int index = 8; //字节下标

               int iType = byteBuf.getIntLE(index);

2.3.2:根据字节的下表获取对应长度的数据

       example:

                i = byteBuf.getIntLE(byteBuf.readableBytes() - 4);

2.3.3:创建ByteBuf的数组:

       example:

               ByteBuf byteBuf = Unpooled.buffer(0);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值