public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(10000);while (true) {
Socket socket = server.accept();initSocket(socket);}}private static void initSocket(final Socket client) throws IOException {
new Thread(new Runnable() { public void run() { BufferedReader in = null;PrintWriter out = null;try { in = new BufferedReader(new InputStreamReader(client.getInputStream()));out = new PrintWriter(client.getOutputStream());String msg = in.readLine();
System.out.println(msg);out.println("Server received " + msg);out.flush();} catch(IOException ex) {
ex.printStackTrace();} finally { try { in.close();} catch (Exception e) {}try { out.close();} catch (Exception e) {}try { client.close();} catch (Exception e) {}}}}).start();}
public static void main(String[] args) throws Exception {
Socket socket = new Socket("localhost", 10000);BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintWriter out = new PrintWriter(socket.getOutputStream());BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));String msg = reader.readLine();
out.println(msg);out.flush();System.out.println(in.readLine());socket.close();
}