package org.webpieces.nio.api.integ; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import org.webpieces.util.logging.Logger; import org.webpieces.util.logging.LoggerFactory; public class EchoServer { private static final Logger log = LoggerFactory.getLogger(EchoServer.class); public void start() { try { startImpl(); } catch (IOException e) { throw new RuntimeException(e); } } public void startImpl() throws IOException { // create socket int port = 4444; @SuppressWarnings("resource") ServerSocket serverSocket = new ServerSocket(port); log.info("started server on port="+port); // repeatedly wait for connections, and process while (true) { // a "blocking" call which waits until a connection is requested Socket clientSocket = serverSocket.accept(); System.err.println("Accepted connection from client"); try ( InputStream inputStream = clientSocket.getInputStream(); OutputStream out = clientSocket.getOutputStream()) { while(true) { byte[] data = new byte[16000]; inputStream.read(data); out.write(data); } } finally { clientSocket.close(); } } } public static void main(String[] args) { new EchoServer().start(); } }