/* threadserver.java a threaded stream server */ import java.net.*; import java.io.*; public class threadserver { public static void main(String[] args) { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(4444); } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(1); } while (true) { Socket clientSock = null; try { clientSock = serverSocket.accept(); } catch (IOException e) { System.err.println("Accept failed."); System.exit(1); } SocketHandler h = new SocketHandler(clientSock); h.start(); } } } class SocketHandler extends Thread { Socket client; SocketHandler(Socket s) { this.client = s; } public void run() { System.out.println("A connection has been accepted"); try { PrintWriter out = new PrintWriter(client.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader( client.getInputStream())); char buffer[] = new char[4096]; int n; n = in.read(buffer,0,4096); if (n > 0) { String s = new String(buffer,0,n); System.out.println("Read " + n + " chars from the socket: " + s); } out.println("I got your message"); out.close(); in.close(); client.close(); } catch(IOException e) { System.err.println("I/O Error in SocketHander"); e.printStackTrace(); } } }