selector.select();
}
catch(IOException e)
{
continue;//当有异常发生时,继续进行循环操作
}
/**
* 得到活动的网络连接选择键的集合
*/
Set<SelectionKey> keys=selector.selectedKeys();
activeSockets=keys.size();//获取活动连接的数目
if(activeSockets==0)
{
continue;//如果连接数为0,则继续进行循环操作
}
/**
/**
* 应用For—Each循环遍历整个选择键集合
*/
for(SelectionKey key :keys)
{
/**
* 如果关键字状态是为可接受,则接受连接,注册通道,以接受更多的事件,进行相关的服务器程序处理
*/
if(key.isAcceptable())
{
doServerSocketEvent(key);
continue;
}
/**
* 如果关键字状态为可读,则说明Channel是一个客户端的连接通道,
* 进行相应的读取客户端数据的操作
*/
if(key.isReadable())
{
doClientReadEvent(key);
continue;
}