【发布时间】:2020-10-30 06:34:00
【问题描述】:
由于我想尝试实现与 Telegram 服务器的基本 TCP 连接(使用 MTProto),因此我开始阅读有关 Java NIO 类的信息。但是,我在试图理解Selectors 对客户的意义时“卡住”了。
选择器支持基于键的、非阻塞的、多路复用的 I/O。换句话说,选择器使您能够通过多个通道执行 I/O。 (Java - 完整参考)
作为一个流,TCP 消息始终是有序的,并且我只会打开一个套接字连接(单个SocketChannel),那么使用Selectors 有什么意义呢?我认为没有意义,对吗?
如果我的自我回答是正确的,为什么不直接使用阻塞 I/O?
【问题讨论】:
-
它主要在服务器端有用,它必须处理许多同时连接。