import java.net.*; import java.io.*; class ZaehlerServer{ int zaehler=0; public void incr(){ zaehler++; // return zaehler; } public void decr(){ zaehler--; // return zaehler; } public void betrieb(){ try{ ServerSocket serverso= new ServerSocket(1234); while (true) { String kommando; Socket so=serverso.accept(); BufferedReader vomClient = new BufferedReader( new InputStreamReader(so.getInputStream())); BufferedWriter zumClient= new BufferedWriter( new OutputStreamWriter(so.getOutputStream())); kommando= vomClient.readLine(); if (kommando.equals("incr")) { incr(); } // end of if else if (kommando.equals("decr")){ decr(); } // end of if-else zumClient.write(""+zaehler); zumClient.flush(); so.close(); } // end of while } catch (IOException e){ } } public static void main(String[] args){ ZaehlerServer zs = new ZaehlerServer(); zs.betrieb(); } }
import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*;
/** * * Beschreibung * * @version 1.0 vom 05.07.2015 * @author */
public class Client extends Frame { // Anfang Attribute private Button button1 = new Button(); private Button button2 = new Button(); private TextField textField1 = new TextField(); // Ende Attribute public Client(String title) { // Frame-Initialisierung super(title); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { dispose(); } }); int frameWidth = 386; int frameHeight = 171; setSize(frameWidth, frameHeight); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); int x = (d.width - getSize().width) / 2; int y = (d.height - getSize().height) / 2; setLocation(x, y); setResizable(false); Panel cp = new Panel(null); add(cp); // Anfang Komponenten button1.setBounds(48, 40, 57, 41); button1.setLabel("<"); button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { button1_ActionPerformed(evt); } }); cp.add(button1); button2.setBounds(248, 40, 57, 41); button2.setLabel(">"); button2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { button2_ActionPerformed(evt); } }); cp.add(button2); textField1.setBounds(128, 40, 89, 41); cp.add(textField1); // Ende Komponenten setVisible(true); kommando("get"); } // end of public Client // Anfang Methoden public void button1_ActionPerformed(ActionEvent evt) { kommando("decr"); } // end of button1_ActionPerformed public void button2_ActionPerformed(ActionEvent evt) { kommando("incr"); } // end of button2_ActionPerformed public void kommando(String befehl){ try{ String zaehler; Socket so= new Socket("localhost",1234); PrintWriter zumServer = new PrintWriter( so.getOutputStream(),true); BufferedReader vomServer = new BufferedReader( new InputStreamReader(so.getInputStream())); zumServer.println(befehl); zaehler= vomServer.readLine(); textField1.setText(zaehler); so.close(); } catch (IOException e){ textField1.setText("IO-Problem"); } } // Ende Methoden public static void main(String[] args) { new Client("Client"); } // end of main } // end of class Client
sup1.m(h, v2); // Aufruf #1
sup 1 ist vom Typ Super
Aufruf m(Huhn, Vogel)
Methode m(Tier , Tier )
Ausgabe 1
sup2.m(v1, k); // Aufruf #2
sup 2 ist vom Typ Super
Aufruf m(Vogel, Karpfen)
Methode m(Tier , Fisch )
Überschrieben von m(Tier , Fisch ) in Sub
Ausgabe 3
sup1.m(t1, t2); // Aufruf #3
sup 1 ist vom Typ Super
Aufruf m(Tier, Tier)
Methode m(Tier , Tier )
Ausgabe 1
sup1.m(v1, k); // Aufruf #4
sup 1 ist vom Typ Super
Aufruf m(Vogel, Karpfen)
Methode m(Tier , Fisch )
Ausgabe 2
sup1.m(v2, f); // Aufruf #5
sup 1 ist vom Typ Super
Aufruf m(Vogel, Fisch)
Methode m(Tier , Fisch )
Ausgabe 2
sup2.m(v1, f); // Aufruf #6
sup 1 ist vom Typ Super
Aufruf m(Vogel, Fisch)
Methode m(Tier , Fisch )
Überschrieben von m(Tier , Fisch ) in Sub
Ausgabe 3