package echoserver;

import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class EchoClient extends JFrame {

    JButton btn;

    JLabel lb;

    JTextField txt;

    BufferedReader in;

    PrintWriter out;

    Socket sock;

    public EchoClient() {
	setPreferredSize(new Dimension(200, 150));
	setLayout(new GridLayout(3, 1));
	btn = new JButton("Send");
	btn.addActionListener(new ActionListener() {
	    
	    @Override
	    public void actionPerformed(ActionEvent arg0) {
		out.println(txt.getText());
		try {
		    lb.setText(in.readLine());
		} catch (IOException e) {
		    // TODO Auto-generated catch block
		    e.printStackTrace();
		}
	    }
	});
	lb = new JLabel();
	txt = new JTextField();
	add(txt);
	add(btn);
	add(lb);
	setVisible(true);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	pack();
	connect();
    }

    void connect() {
	try {
	    sock = new Socket("localhost", 20000);
	    in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
	    out = new PrintWriter(sock.getOutputStream(), true);
	} catch (UnknownHostException e2) {
	    // TODO Auto-generated catch block
	    e2.printStackTrace();
	} catch (IOException e2) {
	    // TODO Auto-generated catch block
	    e2.printStackTrace();
	}
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
	EchoClient cl = new EchoClient();
    }

}
