博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
netty socket 客服端编程
阅读量:6083 次
发布时间:2019-06-20

本文共 2572 字,大约阅读时间需要 8 分钟。

1 package com.ming.netty.nio; 2  3 import io.netty.bootstrap.Bootstrap; 4 import io.netty.channel.ChannelFuture; 5 import io.netty.channel.ChannelInitializer; 6 import io.netty.channel.ChannelOption; 7 import io.netty.channel.EventLoopGroup; 8 import io.netty.channel.nio.NioEventLoopGroup; 9 import io.netty.channel.socket.SocketChannel;10 import io.netty.channel.socket.nio.NioSocketChannel;11 12 /**13  * netty 客户端模拟14  * @author mingge15  *16  */17 public class TimeClient {18     19     20     public static void main(String[] args) throws Exception{21         new TimeClient().connect("127.0.0.1", 8400);22     }23 24     public void connect(String addr,int port) throws Exception{25         EventLoopGroup group=new NioEventLoopGroup();26         try {27             Bootstrap b=new Bootstrap();28             b.group(group).channel(NioSocketChannel.class)29             .option(ChannelOption.TCP_NODELAY, true)30             .handler(new ChannelInitializer
() {31 public void initChannel(SocketChannel ch) throws Exception{32 ch.pipeline().addLast(new TimeClientHandler());33 }34 });35 ChannelFuture f=b.connect(addr,port);36 f.channel().closeFuture().sync();//等待客户端关闭连接37 } catch (Exception e) {38 // TODO: handle exception39 }finally{40 group.shutdownGracefully();41 }42 }43 }
1 package com.ming.netty.nio; 2  3 import io.netty.buffer.ByteBuf; 4 import io.netty.buffer.Unpooled; 5 import io.netty.channel.ChannelHandlerAdapter; 6 import io.netty.channel.ChannelHandlerContext; 7  8 public class TimeClientHandler extends ChannelHandlerAdapter { 9     10     private final ByteBuf byteMsg;11     12     public TimeClientHandler() {13         byte[] req="我是请求数据哦".getBytes();14         byteMsg=Unpooled.buffer(req.length);15         byteMsg.writeBytes(req);16     }17 18     @Override19     public void channelActive(ChannelHandlerContext ctx) throws Exception {20         ctx.writeAndFlush(byteMsg);21     }22 23     @Override24     public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {25         ByteBuf buf=(ByteBuf)msg;26         byte[] req=new byte[buf.readableBytes()];27         buf.readBytes(req);28         String body=new String(req,"GBK");29         System.out.println("body:"+body);30     }31 32     @Override33     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {34         //释放资源35         ctx.close();36     }37 38     39 }

 

转载地址:http://adkwa.baihongyu.com/

你可能感兴趣的文章
CSS3 transforms 3D翻开
查看>>
java基础---->正则表达式
查看>>
2.2013/06/13_log(n)+1
查看>>
关于加载iframe时进度条不消失的问题
查看>>
poj 3984迷宫问题【广搜】
查看>>
oracle ORA-01840:输入值对于日期格式不够长
查看>>
python基础知识~logger模块
查看>>
SIP入门(二):建立SIPserver
查看>>
Servlet3.0的异步
查看>>
WebService连接postgresql( 失败尝试)
查看>>
从头认识java-13.11 对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题?...
查看>>
Python-MacOSX下SIP引起的pip权限问题解决方案(非取消SIP机制)
查看>>
从MFQ方法到需求分析
查看>>
android.view.WindowManager$BadTokenException: Unable to add window
查看>>
HDU5012:Dice(bfs模板)
查看>>
iphone openssh
查看>>
Linux下MEncoder的编译
查看>>
Javascript中闭包(Closure)的探索(一)-基本概念
查看>>
spark高级排序彻底解秘
查看>>
ylbtech-LanguageSamples-PartialTypes(部分类型)
查看>>