日期:2014-05-20  浏览次数:20669 次

NIO socket编程基础问题,希望热心人解惑!
最近开始学习Java NIO Socket编程,有些地方不太明白:

1. 开始我以为Server端和Client端共用一个Selector,后来感觉似乎不是共用的吧,谁要读或写,就自己往selector里注册键值,再循环处理自己selector中的事件,不知道对不对?
2. Server端,注册了ACCEPT启动
   Client端注册了CONNECT事件连Server并write(data)  (不太明白这里我还没注册WRITE事件怎么就可以写了)
   Server知道Client连上,并注册了READ事件,取得READ键值, remove READ键值,处理READ事件(关键是这里 我明明已经remove了READ键值了,我客户端执行写操作关闭后,服务器端还在循环处理isReadable事件,这是怎么回事啊?)

希望热心人帮忙解惑!
------最佳解决方案--------------------
 Server和Client 根本就没什么联系,你Server用NIO ,Client 用Socket的也没什么问题,一般的客户端也没必要用NIO,这是IO模型的问题,建议看一下 UNIX网络编程 ,中间会涉及到5个模型,顺便你还可以理解一下AIO
。