@@ -0,0 +1,1965 @@
+package com.tcp.server;%0A%0Aimport java.io.BufferedReader;%0Aimport java.io.DataOutputStream;%0Aimport java.io.IOException;%0Aimport java.io.InputStreamReader;%0Aimport java.net.ServerSocket;%0Aimport java.net.Socket;%0Aimport java.util.Date;%0Aimport java.util.concurrent.ExecutorService;%0Aimport java.util.concurrent.Executors;%0A%0Apublic class MultiThreadedTCPServer %7B%0A%0A    private static class TCPWorker implements Runnable %7B%0A%0A        private Socket client;%0A        private String clientbuffer;%0A%0A        public TCPWorker(Socket client) %7B%0A            this.client = client;%0A            this.clientbuffer = %22%22;%0A        %7D%0A%0A        @Override%0A        public void run() %7B%0A%0A            try %7B%0A                System.out.println(%22Client connected with: %22 + this.client.getInetAddress());%0A%0A                DataOutputStream output = new DataOutputStream(client.getOutputStream());%0A                BufferedReader reader = new BufferedReader(%0A                        new InputStreamReader(this.client.getInputStream())%0A                );%0A%0A                this.clientbuffer = reader.readLine();%0A                System.out.println(%22%5B%22 + new Date() + %22%5D Received: %22 + this.clientbuffer);%0A%0A                output.writeBytes(this.clientbuffer.toUpperCase() + System.lineSeparator());%0A            %7D catch (IOException e) %7B%0A                e.printStackTrace();%0A            %7D%0A%0A        %7D%0A%0A    %7D%0A%0A    public static ExecutorService TCP_WORKER_SERVICE = Executors.newFixedThreadPool(10);%0A%0A    public static void main(String args%5B%5D) %7B%0A        try %7B%0A            ServerSocket socket = new ServerSocket(5678);%0A%0A            System.out.println(%22Server listening to: %22 + socket.getInetAddress() + %22:%22 + socket.getLocalPort());%0A%0A            while (true) %7B%0A                Socket client = socket.accept();%0A%0A                TCP_WORKER_SERVICE.submit(%0A                        new TCPWorker(client)%0A                );%0A%0A            %7D%0A        %7D catch (IOException e) %7B%0A            e.printStackTrace();%0A        %7D%0A    %7D%0A%0A%7D%0A%0A

Create MultiThreadedTCPServer.java