| 
import java.io.BufferedReader;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.ServerSocket;
 import java.net.Socket;
 
 public class MainClass extends Thread {
 private ServerSocket serverSocket;
 
 public MainClass() throws IOException {
 serverSocket = new ServerSocket(2000);
 }
 
 public void run() {
 try {
 Socket client = serverSocket.accept();
 
 DataInputStream in = new DataInputStream(client.getInputStream());
 BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
 DataOutputStream out = new DataOutputStream(client.getOutputStream());
 
 while (true) {
 String message = in.readUTF();
 System.out.println(message);
 System.out.print("Enter response: ");
 String response = console.readLine();
 
 out.writeUTF(response);
 }
 } catch (IOException e) {
 e.printStackTrace();
 }
 }
 
 public static void main(String[] args) {
 try {
 Thread t = new MainClass();
 t.start();
 } catch (IOException e) {
 e.printStackTrace();
 }
 }
 }
 
 
 |