1. 监听端口, 当连接到来的时候创建socketChannel
public class MultiServer {
public static void main(String[] args) throws IOException {
ServerSocketChannel ss = ServerSocketChannel.open().bind(
new InetSocketAddress(8484));
final Selector selector = Selector.open();
wuTiRaw(selector);
while (true) {
SocketChannel channel = ss.accept();
channel.configureBlocking(false);
channel.register(selector, SelectionKey.OP_READ);
}
}
private static void wuTiRaw(final Selector selector) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
selector.select();
Set<SelectionKey> keys = selector
.selectedKeys();
Iterator<SelectionKey> it = keys.iterator();
while (it.hasNext()) {
SelectionKey next = it.next();
if (next.isReadable()) {
ByteBuffer bb = ByteBuffer.allocate(10);