Mercurial Hosting > luan
view src/luan/webserver/Server.java @ 1137:c123ee15f99b
add webserver
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 29 Jan 2018 18:49:59 -0700 |
parents | |
children | 4189027691b7 |
line wrap: on
line source
package luan.webserver; import java.io.IOException; import java.net.Socket; import java.net.ServerSocket; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Server { private static final Logger logger = LoggerFactory.getLogger(Server.class); public final int port; public final Handler handler; private volatile boolean isRunning = false; private Thread thread; public Server(int port,Handler handler) { this.port = port; this.handler = handler; } protected ServerSocket newServerSocket() throws IOException { return new ServerSocket(port); } public synchronized void start() throws IOException { isRunning = true; final ServerSocket ss = newServerSocket(); thread = new Thread("threebody.http.Server") { public void run() { try { while(isRunning) { Socket socket = ss.accept(); new Connection(Server.this,socket); } } catch(IOException e) { logger.error("",e); } } }; thread.start(); logger.info("started server on port "+port); } public synchronized void stop() { isRunning = false; try { thread.join(); } catch(InterruptedException e) { throw new RuntimeException(e); } logger.info("stopped server on port "+port); } }