迭代器Java NIO异常
您好,我正在尝试使用NIO进行聊天,在服务器部分的一个独立线程中,当我:
private void broadcast(String msg, String user)
{
String Message = user + ":" + msg + "\0";
System.out.println(Message);
ByteBuffer buf=ByteBuffer.wrap(Message.getBytes());
Set<SelectionKey> selectedKeys = selector.keys();
Iterator<SelectionKey> keyIterator = selectedKeys.iterator();
while(keyIterator.hasNext())
{
SelectionKey key = keyIterator.next();
if(key.attachment() != user)
{
try {
((SocketChannel) key.channel()).write(buf);
} catch (IOException e) {
e.printStackTrace();
}
buf.rewind();
}
keyIterator.remove();
}
}
我有一个例外:
java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection$1.remove(Unknown Source)
at chatserver.MessageSender.broadcast(MessageSender.java:41)
at chatserver.MessageSender.run(MessageSender.java:113)
at java.lang.Thread.run(Unknown Source)
第41行是:键迭代器。移除(); 我用这个作为指导:Java NIO Tutorial
共 (0) 个答案