package com.github.bjuvensjo.rsimulator.socket; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; import com.github.bjuvensjo.rsimulator.core.config.CoreModule; import com.github.bjuvensjo.rsimulator.socket.config.GlobalConfig; import com.github.bjuvensjo.rsimulator.socket.config.SocketModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; /** * SocketSimulator. * * @author Magnus Bjuvensjö */ public class SocketSimulator { private static final Logger log = LoggerFactory.getLogger(SocketSimulator.class); @Inject private Manager manager; public SocketSimulator() { Injector injector = Guice.createInjector(new CoreModule(), new SocketModule()); injector.injectMembers(this); run(); } private void run() { try { int port = GlobalConfig.port; ServerSocket ss = new ServerSocket(port); log.info("Started {} on port {}", this.getClass().getName(), port); while (true) { try { Socket s = ss.accept(); log.debug("Accepted {}", s); manager.handle(s); } catch (IOException e) { log.error(null, e); } } } catch (IOException e) { log.error(null, e); } } public static void main(String[] args) { new SocketSimulator(); } }