Java NIO Problem
Hello all.
My problem seemingly is that the Set<SelectionKey>'s iterator is not
removing the key when done. This *appears* to be what is wrong. Here is
some code:
public void run()
{
//SelectionKey key=null;
//Set<SelectionKey> selectedKeys=null;
//Iterator it=null;
while(true)
{
try
{
if(selector.select(500)==0)continue;
Set<SelectionKey> selectedKeys=selector.selectedKeys();
Iterator it=selectedKeys.iterator();
while(it.hasNext())
{
SelectionKey key=(SelectionKey)it.next();
if(key.isValid())
{
if(key.isReadable())
{
readFromSocketChannel(key);
}
}
it.remove();
}
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
catch(Exception e)
{
System.out.println(e);
}
finally
{
//it.remove();
//key.cancel();
}
What ends up happening is the readFromSocketChannel(key) just keeps
getting called with an empty buffer after the first actual read.
Help appreciated! :-)