我正在尝试了解NIO套接字模型,并且我有几个问题需要清理。
是否可以使用选择器注册多个服务器通道,例如
serverChannel_1.register(selector, SelectionKey.OP_ACCEPT);
serverChannel_2.register(selector, SelectionKey.OP_ACCEPT);
// and so on ....?
那么,通过注册两个ServerSocketChannel,你在不同端口的同一台机器上有两台服务器吗?
以下nio套接字模型中的“键”是什么:
据我所知,长客户端I / O请求被分成小块并一个接一个地处理。即,一次处理来自客户端1,2,3的请求的10%并且循环再次开始?
答案 0 :(得分:1)
A SelectionKey
是使用选择器注册频道的结果。如果您愿意,它代表注册。它具有已注册的通道,其注册的事件以及当前准备好的事件(如果有的话)作为属性。
据我所知,长客户端I / O请求被分成小块并一个接一个地处理。即,一次处理来自客户端1,2,3的请求的10%并且循环再次开始?
没有。如何处理客户端I / O完全取决于您。 Selector
所做的就是告诉你哪些事件已经准备就绪了。