Server Side Code:
import java.io.*;
import java.net.*; 
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*; 
public class RealEchoServer{
    public static void main(String[] args ){
        int i = 1;
        try{
             ServerSocket s = new ServerSocket(9003); 
             for (;;){
                 Socket incoming = s.accept( );
                 System.out.println("Spawning " + i);
                 new RealEchoHandler(incoming, i).start();
                 i++;
             }
        } catch (Exception e){ System.out.println(e); }
    }
} 
class RealEchoHandler extends Thread{
    DataInputStream in;
    DataOutputStream out;
    private Socket incoming;
    private int counter; 
    public RealEchoHandler(Socket i, int c){
        incoming = i;
        counter = c;
    } 
    public void run(){
        try {  
            String key1 = "1234567812345678"; 
              byte[] key2 = key1.getBytes();
              SecretKeySpec secret = new SecretKeySpec(key2, "AES");
            String msg = "Singapore Malaysia Japan India Indonesia HongKong Taiwan China England";
            Cipher cipher = Cipher.getInstance("AES");        
                cipher.init(Cipher.ENCRYPT_MODE, secret);
               byte[] encrypted = cipher.doFinal(msg.getBytes()); 
            in = new DataInputStream(incoming.getInputStream());
            out = new DataOutputStream(incoming.getOutputStream()); 
            boolean done = false;
            String str="";
            out.writeUTF("Connected!\n");
            out.flush();
            while (!done){
                out.writeUTF(">");
                out.flush();
                str = in.readUTF();
                System.out.println(in+":"+str);
                if (str == null)
                    done = true;
                else{
                    System.out.println("Sending Ciphertext : " + new String(encrypted));
                    out.writeUTF(new String(encrypted));
                    out.flush();
                }
            }
            incoming.close();
         } catch (Exception e){
             System.out.println(e);
         }
    }
}
Client Side code:import java.io.*;
import java.net.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.util.*; 
class RealSocketTest{
    public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException{ 
        String str = "";
        String str2 = "";
        DataOutputStream out;
        DataInputStream in; 
        try {
            Socket t = new Socket("127.0.0.1", 9003);
            in = new DataInputStream(t.getInputStream());
            out = new DataOutputStream(t.getOutputStream());
            BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); 
            boolean more = true;
            System.out.println(in.readUTF());     
            while (more) {
                str = in.readUTF();
                System.out.print(str);
                str2 = br.readLine();
                out.writeUTF(str2);
                out.flush();
                str = in.readUTF(); 
                System.out.println("Encrypted Info: " + str); 
                try { 
                    String key1 = "1234567812345678"; 
                      byte[] key2 = key1.getBytes();
                      SecretKeySpec secret = new SecretKeySpec(key2, "AES"); 
                    Cipher cipher = Cipher.getInstance("AES");         
                    cipher.init(Cipher.DECRYPT_MODE, secret);
                    byte[] decrypted = cipher.doFinal(str.getBytes());
                    System.out.println("Decrypted Info: " + new String(decrypted));
                }
                catch(BadPaddingException e){
                    System.out.println("Wrong Key!");
                }
                catch(InvalidKeyException f) {
                    System.out.println("Invalid Key!");
                }
            }
        } 
        catch(IOException e){
            System.out.println("Error");
        }
    }
}
  This is just a proof of concept please feel free to customize yourself..Enjoy ;)