⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 axserver.java

📁 java NIO源代码,初学者学习java NIO技术的基础代码
💻 JAVA
字号:
package org.Arios.XServer;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.util.Iterator;

public class AxServer implements Runnable{

	private ServerSocketChannel serverChannel;
	private Selector s;
	private InetSocketAddress address;
	private Thread serverThread;
	private AxAcceptorManager manager = AxAcceptorManager.getInstance();
	
	public AxServer(int port) {
		address = new InetSocketAddress(port);
		try {
			s = Selector.open();
			serverChannel = ServerSocketChannel.open();
			serverChannel.socket().bind(address);
			serverChannel.configureBlocking(false);
			serverChannel.register(s, SelectionKey.OP_ACCEPT);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void start(){
		serverThread = new Thread(this);
		serverThread.start();
	}
	
	@Override
	public void run() {
		for(;;){
			int i = 0 ;
			try {
				i = s.select();
				if(i>0){
					Iterator<SelectionKey> it = s.selectedKeys().iterator();
					while(it.hasNext()){
						SelectionKey key = it.next();
						it.remove();
						manager.start(key);
						key.cancel();
					}
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -