import java.awt.*;
import java.util.*;
import java.io.*;
import java.net.Socket;
import java.awt.event.*;

public class httpKommando extends Frame implements ActionListener{

// Das Programm ist eine Erweiterung der Klasse frame

   TextField kommando;
   TextArea ausgabe;
   Button los;
   
   public httpKommando()    {
        super("Kleines HTTP-Programm");       // Konstruktor der Klasse frame mit Fenstertitel
        this.addWindowListener  (new WindowAdapter(){
            public void windowClosing(WindowEvent e){  // Programmende beim Schliessen des Fensters
                dispose();
                System.exit(0);
            }
        });
        setLayout(new FlowLayout());
        kommando=new TextField("Eingabe: HTTP-Befehl",50);
        add(kommando);
        los=new Button("Senden");
        add(los);
        los.addActionListener(this);
        ausgabe=new TextArea(20,70);
        add(ausgabe);
    }
    public void actionPerformed(ActionEvent e)
    {
      ausgabe.setText("");
      try { kommunizieren( kommando.getText() ); }
      catch( IOException ioe ) { ausgabe.setText("Kein Server erreichbar!"); }
    } 
    public  static void main(String args[])    // Automatischer Aufruf beim Programmstart
    {
      httpKommando f = new httpKommando();     // frame wird erzeugt, die Groesse definiert und
      f.setSize(1000,400);
      f.show();                                // angezeigt.
    }
    public void kommunizieren(String eingabe) throws IOException
    {
      String befehl,zeile;
      Socket partner;
      PrintWriter out;
      BufferedReader in;
      
      befehl=eingabe+" HTTP/1.1\r\n\r\n"; // Protokollspezifikationen anhaengen
      partner=new Socket("www-proxy.t-online.de", 80 ); // Proxy IP und Port
      ausgabe.append("\tgesendeter Befehl: >>>>>>>>>>  "+eingabe+" HTTP/1.1\n");
      ausgabe.append("\tTCP/IP Hostnummer: >>>>>>>>>>  "+partner.getLocalAddress()+"\n\n");
      out=new PrintWriter(partner.getOutputStream());
      out.println(befehl);
      out.flush();
      in = new BufferedReader(new InputStreamReader(partner.getInputStream()));
      zeile = in.readLine();
      while( zeile != null )
      {
        ausgabe.append("<<< " + zeile + "\n");
        zeile=in.readLine();
      }
      in.close();
      out.close();
      partner.close();
   }
   
}   

