里面onSelfClosed方法里的 clientHandlerList.remove(handler)的方法什么时候会被调用?

来源:5-4 数据发送与接收并行-1

Lymanhan

2018-10-30

 ClientHandler clientHandler = new ClientHandler(client,
                            new ClientHandler.CloseNotify() {
                                @Override
                                public void onSelfClosed(ClientHandler handler) {
                                    clientHandlerList.remove(handler);
                                }
                            });
                    // 读取数据并打印
                    clientHandler.readToPrint();
                    clientHandlerList.add(clientHandler);

里面onSelfClosed方法里的 clientHandlerList.remove(handler)的方法什么时候会被调用?

写回答

2回答

Qiujuer

2018-10-31

在当前这个链接对应的 ClientHandler 被触发了关闭的操作的时候回调。

其实对于代码什么时候调用很简单,进入对应的类“ClientHandler”然后看一下里边的这个CloseNotify在什么时候被触发回调,然后再反向去推导什么时候会调用ClientHandler内部对应的方法就能知道答案了。

谢谢你对课程的支持哈。

0
0

Lymanhan

提问者

2018-10-30

我好像想明白了,这个地方是创建了一个ClientHandler的对象名字是clientHandler,然后如果这个对象调用到里面的 exitBySelf() }这个方法,他就会调用 clientHandlerList.remove(handler);这个方法?可以这样理解吗

0
2
Lymanhan
回复
Qiujuer
谢谢老师解答
2018-11-01
共2条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2314 学习 · 476 问题

查看课程