package UDPDemo;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Date;
import java.util.Iterator;
import java.util.Set;
public class DateServer {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
//表示5个监听端口
int []ports = new int[]{8001,8002,8003,8004,8005,8006};
//通过open方法找到selector
Selector selector = Selector.open();
for(int i=0;i0){
//取出全部的键
Set selectionKeys = selector.selectedKeys() ;
Iterator iterator = selectionKeys.iterator();
while(iterator.hasNext()){
SelectionKey key = iterator.next();
if(key.isAcceptable()){
//
ServerSocketChannel server = (ServerSocketChannel) key.channel();//取得对应的服务器通道
//获取客户端
SocketChannel client = server.accept();
//设置非阻塞
client.configureBlocking(false);
ByteBuffer bf = ByteBuffer.allocate(1024);
bf.put(("当前时间为:"+new Date()).getBytes());
bf.flip();
client.write(bf);
client.close();
}
}
selectionKeys.clear();
}
}
}