Thread sThread = new Thread(new Runnable() {
@Override
public void run() {
AsynchronousChannelGroup group = null;
try {
group =
AsynchronousChannelGroup.withThreadPool(Executors.newFixedThreadPool(4)
);
AsynchronousServerSocketChannel server =
AsynchronousServerSocketChannel.open(group).bind(new
InetSocketAddress(InetAddress.getLocalHost(), port));
server.accept(null, new
CompletionHandler<AsynchronousSocketChannel,
AsynchronousServerSocketChannel>() {
@Override
public void completed(AsynchronousSocketChannel result,
AsynchronousServerSocketChannel attachment) {
server.accept(null, this); // 接收下一个请求
try {
Future<Integer> f =
result.write(Charset.defaultCharset().encode("你好,世界"));
f.get();
System.out.println("服务端发送时间:" + new
SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); result.close();
} catch (InterruptedException | ExecutionException
| IOException e) {
e.printStackTrace();
}
}
@Override
public void failed(Throwable exc,
AsynchronousServerSocketChannel attachment) {
}
});
group.awaitTermination(Long.MAX_VALUE, TimeUnit.SECONDS);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
});
sThread.start();