Skip to content

Instantly share code, notes, and snippets.

@jdmr
Created September 5, 2013 16:54
Show Gist options
  • Save jdmr/6452931 to your computer and use it in GitHub Desktop.
Save jdmr/6452931 to your computer and use it in GitHub Desktop.
Zeidon Network Server
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);
}
}
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