码迷,mamicode.com
首页 > Web开发 > 详细

1 Netty--异步和事件驱动

时间:2020-06-05 22:47:04      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:blank   mamicode   success   listener   描述   技术   比较   height   add   

技术图片

 

 技术图片

 

技术图片

 

 技术图片

 

 技术图片

 

 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

闭包包含自由(未绑定到特定对象)变量,这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。“闭包” 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。

闭包就是一个代码块,用“{ }”包起来。此时,程序代码也就成了数据,可以被一个变量所引用(与C语言的函数指针比较类似)。

闭包的最典型的应用是实现回调函数(callback)。

技术图片

 

 

 

public class ConnectExample {
    private static final Channel CHANNEL_FROM_SOMEWHERE = new NioSocketChannel();

    /**
     * 代码清单 1-3 异步地建立连接
     *
     * 代码清单 1-4 回调实战
     * */
    public static void connect() {
        Channel channel = CHANNEL_FROM_SOMEWHERE; //reference form somewhere
        // Does not block
        //异步地连接到远程节点
        ChannelFuture future = channel.connect(new InetSocketAddress("127.0.0.1", 3333));
        //注册一个 ChannelFutureListener,以便在操作完成时获得通知
        future.addListener(new ChannelFutureListener() {
            @Override
            public void operationComplete(ChannelFuture future) {
                //检查操作的状态
                if (future.isSuccess()) {
                    System.out.println("ok");
                    //如果操作是成功的,则创建一个 ByteBuf 以持有数据
                    ByteBuf buffer = Unpooled.copiedBuffer("Hello\n", Charset.defaultCharset());
                    //将数据异步地发送到远程节点。返回一个 ChannelFuture
                    ChannelFuture wf = future.channel().writeAndFlush(buffer);
                    // ...
                } else {
                    //如果发生错误,则访问描述原因的 Throwable
                    Throwable cause = future.cause();
                    cause.printStackTrace();
                }
            }
        });
    }
    public static void main(String[] args){
        ConnectExample.connect();
    }

}

技术图片

 

1 Netty--异步和事件驱动

标签:blank   mamicode   success   listener   描述   技术   比较   height   add   

原文地址:https://www.cnblogs.com/lakeslove/p/13052548.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!