Created
September 5, 2013 16:54
-
-
Save jdmr/6452931 to your computer and use it in GitHub Desktop.
Zeidon Network Server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.IOException; | |
import java.net.ServerSocket; | |
import java.net.Socket; | |
import org.apache.log4j.Logger; | |
public class NetworkServer { | |
private static final Logger log = Logger.getLogger(NetworkServer.class); | |
public void listen(int port) { | |
try { | |
ServerSocket serverSocket = new ServerSocket(port); | |
while(true) { | |
log.info("Started listening on port "+ port); | |
Socket client = serverSocket.accept(); | |
Thread t = new Thread(new ProcessRequest(client)); | |
t.start(); | |
log.debug("Connected - "+client.getInetAddress()); | |
} | |
} catch(IOException e) { | |
log.error("Problems encountered.", e); | |
} | |
} | |
public static void main(String[] args) { | |
NetworkServer server = new NetworkServer(); | |
server.listen(3000); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.IOException; | |
import java.io.InputStream; | |
import java.io.OutputStream; | |
import java.net.Socket; | |
import org.apache.log4j.Logger; | |
public class ProcessRequest extends Thread { | |
private static final Logger log = Logger.getLogger(ProcessRequest.class); | |
private Socket socket = null; | |
private final OutputStream output; | |
private final InputStream input; | |
public ProcessRequest(Socket socket) throws IOException { | |
super("ZEIDON-JOE-THREAD"); | |
this.socket = socket; | |
output = socket.getOutputStream(); | |
input = socket.getInputStream(); | |
} | |
@Override | |
public void run() { | |
try { | |
log.info("Reading"); | |
int next = input.read(); | |
while (next > -1) { | |
log.debug("reading: "+next); | |
next = input.read(); | |
} | |
} catch (IOException e) { | |
log.error("OUCH! " + e.getMessage(), e); | |
} finally { | |
try { | |
socket.close(); | |
} catch (Exception ee) { | |
log.error("Could not close socket", ee); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment