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

📄 server.java

📁 基于java nio实现的http服务器
💻 JAVA
字号:
package org.sse.server;

import java.io.IOException;
import java.nio.channels.*;
import java.util.Iterator;

/**
 * @author Taylor Cowan
 */
public class Server {

	private int myPort;
	private Selector selector;
	private ServerEventHandler myHandler;

	public Server(int port, ServerEventHandler handler) throws IOException {
		myPort = port;
		myHandler = handler;
		selector = SelectorFactory.getSelector(myPort);
	}

	public void listen() {
		SelectionKey key = null;
		try {
			for (;;) {
				selector.select();
				Iterator it = selector.selectedKeys().iterator();
				while (it.hasNext()) {
					key = (SelectionKey) it.next();
					handleKey(key);
					it.remove();
				}
			}
		} catch (IOException e) {
			key.cancel();
		} catch (NullPointerException e) {
			// NullPointer at sun.nio.ch.WindowsSelectorImpl, Bug: 4729342
			e.printStackTrace();			
		}
	}

	private void handleKey(SelectionKey key)
		throws IOException {
		if (key.isAcceptable())
			myHandler.acceptNewClient(selector, key);
		else if (key.isReadable())
			myHandler.readDataFromSocket(key);
	}
}

⌨️ 快捷键说明

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