日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Netty实例-简单的服务端-client实现,凝视具体

發布時間:2023/11/29 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Netty实例-简单的服务端-client实现,凝视具体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ?書籍推薦: ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 實例代碼 :?http://download.csdn.net/detail/jiangtao_st/7677503
  • Netty Server端實現
    /*** * <p>* Netty Server Simple* </p>* * @author 卓軒* @創建時間:2014年7月7日* @version: V1.0*/public class NettyServer {private final int port = 8989;@Testpublic void nettyServer(){EventLoopGroup bossGroup = new NioEventLoopGroup();EventLoopGroup workerGroup = new NioEventLoopGroup();try {ServerBootstrap serverBootstrap = new ServerBootstrap();serverBootstrap.group(bossGroup,workerGroup).channel(NioServerSocketChannel.class).option(ChannelOption.SO_BACKLOG, 1024).childHandler(new ChildChannelHandler());//綁定端口、同步等待ChannelFuture futrue = serverBootstrap.bind(port).sync();//等待服務監聽端口關閉futrue.channel().closeFuture().sync();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{//退出,釋放線程等相關資源bossGroup.shutdownGracefully();workerGroup.shutdownGracefully();}}private class ChildChannelHandler extends ChannelInitializer<SocketChannel>{@Overrideprotected void initChannel(SocketChannel ch) throws Exception {ch.pipeline().addLast(new SimpleServerHandler());}}}
  • Netty Client 實現

    /*** * <p>* NettyClient 實現* </p>* * @author 卓軒* @創建時間:2014年7月7日* @version: V1.0*/ public class NettyClient {public void connect(int port,String host){EventLoopGroup group = new NioEventLoopGroup();try {Bootstrap bootstrap = new Bootstrap();bootstrap.group(group).channel(NioSocketChannel.class).option(ChannelOption.TCP_NODELAY, true).handler(new ChannelInitializer<SocketChannel>() {@Overrideprotected void initChannel(SocketChannel ch) throws Exception {ch.pipeline().addLast(new SimpleClientHandler());}});//發起異步鏈接操作ChannelFuture channelFuture = bootstrap.connect(host, port).sync();channelFuture.channel().closeFuture().sync();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{//關閉,釋放線程資源group.shutdownGracefully();}}@Testpublic void nettyClient(){new NettyClient().connect(8989, "localhost");}}

  • ServerHander 處理程序?

    /*** * <p>* Server接收消息處理Handler* </p>* * @author 卓軒* @創建時間:2014年7月7日* @version: V1.0*/ public class SimpleServerHandler extends ChannelInboundHandlerAdapter {@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf = (ByteBuf)msg;byte [] req = new byte[buf.readableBytes()];buf.readBytes(req);String message = new String(req,"UTF-8");System.out.println("Netty-Server:Receive Message,"+ message);} }

  • ClientHander 處理程序

    /*** * <p>* Client Handler* </p>* * @author 卓軒* @創建時間:2014年7月7日* @version: V1.0*/ public class SimpleClientHandler extends ChannelInboundHandlerAdapter {private ByteBuf clientMessage;public SimpleClientHandler() {byte [] req = "Call-User-Service".getBytes();clientMessage = Unpooled.buffer(req.length);clientMessage.writeBytes(req);}@Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {ctx.writeAndFlush(clientMessage);}@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf = (ByteBuf)msg;byte [] req = new byte[buf.readableBytes()];buf.readBytes(req);String message = new String(req,"UTF-8");System.out.println("Netty-Client:Receive Message,"+ message);}@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {ctx.close();} }

  • 總結

    以上是生活随笔為你收集整理的Netty实例-简单的服务端-client实现,凝视具体的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。