+
 新版
2017-10-18 18:51

引用来自“lblin”的评论

大神,服务端响应后write到客户端的操作在哪啊,没看到这一步

引用来自“三刀蜀黍”的评论

客户端的消息接受处理类是DetectRespMessageHandler,你可以把这个类里的System.out放开观察
看到了,是p2p项目里的,我看的是core😩
2017-10-18 18:45

引用来自“lblin”的评论

大神,服务端响应后write到客户端的操作在哪啊,没看到这一步
客户端的消息接受处理类是DetectRespMessageHandler,你可以把这个类里的System.out放开观察
2017-10-18 18:38
大神,服务端响应后write到客户端的操作在哪啊,没看到这一步
2017-10-18 17:07

引用来自“之渊”的评论

支持,不知道和 t-io 有什么区别?
尽管我也潜水在t-io的群里,但我并不了解t-io😳
2017-10-18 16:59
支持,不知道和 t-io 有什么区别?
2017-10-18 16:33

引用来自“lblin”的评论

源码中客户端关闭channelgroup的时候显示 //仅Client内部创建的ChannelGroup需要shutdown。然后还判断了if ChannelGroup不为null才执行shutdown,但是server中没有进行if判断就执行ChannelGroup的shutdown。为什么2个类中执行不一致。切注释说明也前后不一致。(仅Client内部创建的ChannelGroup需要shutdown。实际上server内部创建的不也shutdown了么)

引用来自“三刀蜀黍”的评论

Client支持外部传入AsynchronousChannelGroup对象。如果是外部传入的,是没有赋值到成员变量asynchronousChannelGroup,所以关闭的时候要进行if判断。至于两者实现不一致,是因为通常我们只会启动一个服务端,这样的话服务端就没必要支持外部传入了。而客户端有可能启动多个,所以通过外部传入AsynchronousChannelGroup实现资源共享

引用来自“lblin”的评论

谢谢,知道了。
然后这段代码
serverSocketChannel.accept(null, new CompletionHandler<AsynchronousSocketChannel, Object>() {
@Override
public void completed(final AsynchronousSocketChannel channel, Object attachment) {
serverSocketChannel.accept(attachment, this);
//连接成功则构造AIOSession对象
new AioSession<T>(channel, config, aioCompletionHandler, true);
}
serverSocketChannel.accept 不是被递归调用了么

引用来自“三刀蜀黍”的评论

serverSocketChannel.accept(attachment, this)其实是注册accpet事件的处理回调对象。注册行为不会引发递归调用的,还有疑惑的话可以反编译看看这一块JDK源码就会消除顾虑了的
好的,谢谢💓
2017-10-18 16:30

引用来自“lblin”的评论

源码中客户端关闭channelgroup的时候显示 //仅Client内部创建的ChannelGroup需要shutdown。然后还判断了if ChannelGroup不为null才执行shutdown,但是server中没有进行if判断就执行ChannelGroup的shutdown。为什么2个类中执行不一致。切注释说明也前后不一致。(仅Client内部创建的ChannelGroup需要shutdown。实际上server内部创建的不也shutdown了么)

引用来自“三刀蜀黍”的评论

Client支持外部传入AsynchronousChannelGroup对象。如果是外部传入的,是没有赋值到成员变量asynchronousChannelGroup,所以关闭的时候要进行if判断。至于两者实现不一致,是因为通常我们只会启动一个服务端,这样的话服务端就没必要支持外部传入了。而客户端有可能启动多个,所以通过外部传入AsynchronousChannelGroup实现资源共享

引用来自“lblin”的评论

谢谢,知道了。
然后这段代码
serverSocketChannel.accept(null, new CompletionHandler<AsynchronousSocketChannel, Object>() {
@Override
public void completed(final AsynchronousSocketChannel channel, Object attachment) {
serverSocketChannel.accept(attachment, this);
//连接成功则构造AIOSession对象
new AioSession<T>(channel, config, aioCompletionHandler, true);
}
serverSocketChannel.accept 不是被递归调用了么
serverSocketChannel.accept(attachment, this)其实是注册accpet事件的处理回调对象。注册行为不会引发递归调用的,还有疑惑的话可以反编译看看这一块JDK源码就会消除顾虑了的
2017-10-18 16:24

引用来自“lblin”的评论

源码中客户端关闭channelgroup的时候显示 //仅Client内部创建的ChannelGroup需要shutdown。然后还判断了if ChannelGroup不为null才执行shutdown,但是server中没有进行if判断就执行ChannelGroup的shutdown。为什么2个类中执行不一致。切注释说明也前后不一致。(仅Client内部创建的ChannelGroup需要shutdown。实际上server内部创建的不也shutdown了么)

引用来自“三刀蜀黍”的评论

Client支持外部传入AsynchronousChannelGroup对象。如果是外部传入的,是没有赋值到成员变量asynchronousChannelGroup,所以关闭的时候要进行if判断。至于两者实现不一致,是因为通常我们只会启动一个服务端,这样的话服务端就没必要支持外部传入了。而客户端有可能启动多个,所以通过外部传入AsynchronousChannelGroup实现资源共享
谢谢,知道了。
然后这段代码
serverSocketChannel.accept(null, new CompletionHandler<AsynchronousSocketChannel, Object>() {
@Override
public void completed(final AsynchronousSocketChannel channel, Object attachment) {
serverSocketChannel.accept(attachment, this);
//连接成功则构造AIOSession对象
new AioSession<T>(channel, config, aioCompletionHandler, true);
}
serverSocketChannel.accept 不是被递归调用了么
2017-10-18 12:40

引用来自“lblin”的评论

源码中客户端关闭channelgroup的时候显示 //仅Client内部创建的ChannelGroup需要shutdown。然后还判断了if ChannelGroup不为null才执行shutdown,但是server中没有进行if判断就执行ChannelGroup的shutdown。为什么2个类中执行不一致。切注释说明也前后不一致。(仅Client内部创建的ChannelGroup需要shutdown。实际上server内部创建的不也shutdown了么)
Client支持外部传入AsynchronousChannelGroup对象。如果是外部传入的,是没有赋值到成员变量asynchronousChannelGroup,所以关闭的时候要进行if判断。至于两者实现不一致,是因为通常我们只会启动一个服务端,这样的话服务端就没必要支持外部传入了。而客户端有可能启动多个,所以通过外部传入AsynchronousChannelGroup实现资源共享
2017-10-18 11:55
源码中客户端关闭channelgroup的时候显示 //仅Client内部创建的ChannelGroup需要shutdown。然后还判断了if ChannelGroup不为null才执行shutdown,但是server中没有进行if判断就执行ChannelGroup的shutdown。为什么2个类中执行不一致。切注释说明也前后不一致。(仅Client内部创建的ChannelGroup需要shutdown。实际上server内部创建的不也shutdown了么)
2017-10-18 09:52
表示关注
2017-10-18 08:44
强力支持,极简,不失强大!
2017-10-18 08:36
支持作者带来的良品
2017-10-18 08:26

引用来自“吕兵阳”的评论

博主,那个博客进去里面是空的

引用来自“三刀蜀黍”的评论

@吕兵阳 哪个博客?麻烦贴一下地址
就你那个代码深度解析那个。
2017-10-18 08:24

引用来自“吕兵阳”的评论

博主,那个博客进去里面是空的
@吕兵阳 哪个博客?麻烦贴一下地址
2017-10-18 08:20
博主,那个博客进去里面是空的
2017-10-18 07:48

引用来自“开源狂人”的评论

恕我直言,学习价值非常高,毕竟现在开发都喜欢用nio,不管需求是不是这样,总会用一些主流技术Mina、netty之类的。
@开源狂人 我以前也是玩了很长时间的NIO,通过AIO才意识到NIO复杂度实在是高,感兴趣的朋友都可以来接触一下AIO,会有惊喜的。
2017-10-18 05:28
恕我直言,学习价值非常高,毕竟现在开发都喜欢用nio,不管需求是不是这样,总会用一些主流技术Mina、netty之类的。
回复 @
{{emojiItem.symbol}}
返回顶部
顶部