Hey, danke für die Antworten schonmal.
Es ist ja nicht so, dass ich mir keine Gedanken, um dieses Thema mache.
Ich habe ja bereits etwas am TCPClienten umgeschrieben, so dass man damit vllt. arbeiten kann.
Ich habe, wie gesagt, relativ wenig Ahnung vom Ganzen.
Was prinzipiell gemacht werden muss, ist mir schon klar. Aber an der Umsetzung hapert's ganz gewaltig.
Anbei mal Auszüge aus meiner bisherigen Programmierarbeit
SumAnwendung.java:
/**
* Die Klasse SuMAnwendung wurde automatisch erstellt:
*
* @author
* @version 08.01.2010
*/
import sum.komponenten.*;
import sum.werkzeuge.*;
import sum.ereignis.*;
import sum.kern.*;
public class SuMAnwendung extends EBAnwendung
{
// Objekte
private Etikett hatEtikettTcpclient;
private Etikett hatEtikettServer;
private Etikett hatEtikettPort;
private Etikett hatEtikettStatus;
private Etikett hatEtikettNachricht;
private Etikett hatEtikettEmpfangen;
private Knopf hatKnopfVerbinden;
private Knopf hatKnopfTrennen;
private Knopf hatKnopfSenden;
private Knopf hatKnopfBeenden;
private Textfeld hatTextfeld1;
private Textfeld hatTextfeld2;
private Textfeld hatTextfeld3;
private Zeichenbereich hatZeichenbereich1;
TCPClientverbindung hatVerbindung;
String lNachricht;
Tastatur hatTastatur;
Stift hatStift;
Textwerkzeug hatTW;
// Attribute
/**
* Konstruktor
*/
public SuMAnwendung()
{
//Initialisierung der Oberklasse
super(811, 679);
hatEtikettTcpclient = new Etikett(351, 86, 100, 25, "TCP-Client");
// Ausrichtung
hatEtikettTcpclient.setzeAusrichtung(Ausrichtung.LINKS);
hatEtikettServer = new Etikett(155, 166, 70, 25, "Server");
// Ausrichtung
hatEtikettServer.setzeAusrichtung(Ausrichtung.LINKS);
hatEtikettPort = new Etikett(555, 164, 46, 25, "Port");
// Ausrichtung
hatEtikettPort.setzeAusrichtung(Ausrichtung.LINKS);
hatEtikettStatus = new Etikett(153, 304, 388, 25, "Status");
// Ausrichtung
hatEtikettStatus.setzeAusrichtung(Ausrichtung.LINKS);
hatEtikettNachricht = new Etikett(149, 380, 100, 25, "Nachricht");
// Ausrichtung
hatEtikettNachricht.setzeAusrichtung(Ausrichtung.LINKS);
hatEtikettEmpfangen = new Etikett(145, 440, 100, 25, "Empfangen");
// Ausrichtung
hatEtikettEmpfangen.setzeAusrichtung(Ausrichtung.LINKS);
hatKnopfVerbinden = new Knopf(241, 232, 108, 25, "Verbinden");
hatKnopfVerbinden.setzeBearbeiterGeklickt("hatKnopfVerbindenGeklickt");
hatKnopfTrennen = new Knopf(443, 232, 100, 25, "Trennen");
hatKnopfTrennen.setzeBearbeiterGeklickt("hatKnopfTrennenGeklickt");
hatKnopfSenden = new Knopf(533, 382, 100, 25, "Senden");
hatKnopfSenden.setzeBearbeiterGeklickt("hatKnopfSendenGeklickt");
hatKnopfBeenden = new Knopf(147, 568, 100, 25, "Beenden");
hatKnopfBeenden.setzeBearbeiterGeklickt("hatKnopfBeendenGeklickt");
hatTextfeld1 = new Textfeld(253, 164, 248, 25, "");
// Ausrichtung
hatTextfeld1.setzeAusrichtung(Ausrichtung.LINKS);
hatTextfeld2 = new Textfeld(623, 164, 152, 25, "");
// Ausrichtung
hatTextfeld2.setzeAusrichtung(Ausrichtung.LINKS);
hatTextfeld3 = new Textfeld(283, 380, 168, 25, "");
// Ausrichtung
hatTextfeld3.setzeAusrichtung(Ausrichtung.LINKS);
hatZeichenbereich1 = new Zeichenbereich(287, 438, 372, 154, "");
lNachricht = new String();
}
/**
* Vorher: Ereignis GeklicktvonhatKnopfVerbinden fand statt.
* Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird)
*/
public void hatKnopfVerbindenGeklickt()
{
String lServeradresse;
String lAntwort;
int lPort;
lServeradresse = hatTextfeld1.inhaltAlsText();
lPort = hatTextfeld2.inhaltAlsGanzeZahl();
hatVerbindung = new TCPClientverbindung(lServeradresse, lPort, true, hatZeichenbereich1);
hatKnopfVerbinden.verstecke();
hatKnopfTrennen.zeige();
hatEtikettStatus.setzeInhalt("Verbunden :D");
}
/**
* Vorher: Ereignis GeklicktvonhatKnopfTrennen fand statt.
* Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird)
*/
public void hatKnopfTrennenGeklickt()
{
hatVerbindung.gibFrei();
hatKnopfTrennen.verstecke();
hatKnopfVerbinden.zeige();
hatKnopfSenden.verstecke();
hatEtikettStatus.setzeInhalt("nicht mehr verbunden :(");
hatVerbindung = null;
}
/**
* Vorher: Ereignis GeklicktvonhatKnopfSenden fand statt.
* Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird)
*/
public void hatKnopfSendenGeklickt()
{
lNachricht = hatTextfeld3.inhaltAlsText();
hatVerbindung.sende(lNachricht);
}
/**
* Vorher: Ereignis GeklicktvonhatKnopfBeenden fand statt.
* Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird)
*/
public void hatTastaturgedrueckt()
{
String zV;
String zH;
zH = hatStift.hPosition();
zV = hatStift.vPosition();
if(hatTastatur.wurdeGedrueckt())
{
switch (hatTastatur.zeichen())
{
case 'w' : case 'W' : hatVerbindung.sende("@oben"+hatTW.alsText(zH)+hatTW.alsText(zV));break;
case 's' : case 'S' : hatVerbindung.sende("@unten"+hatTW.alsText(zH)+hatTW.alsText(zV));break;
case 'a' : case 'A' : hatVerbindung.sende("@links"+hatTW.alsText(zH)+hatTW.alsText(zV));break;
case 'd' : case 'D' : hatVerbindung.sende("@rechts"+hatTW.alsText(zH)+hatTW.alsText(zV));break;
}
}
}
public void hatKnopfBeendenGeklickt()
{
this.gibFrei();
}
}
Clientverbindung.java:
import sum.netz.*;
import sum.komponenten.*;
import sum.strukturen.*;
import sum.kern.*;
import sum.werkzeuge.*;
/**
* @author
* @version
*/
public class TCPClientverbindung extends Clientverbindung
{
// Bezugsobjekte
Zeichenbereich kenntZeichenbereich1;
Textwerkzeug hatTW;
Stift hatStift;
// Attribute
// Konstruktor
public TCPClientverbindung(String pServer, int pPort,
boolean pMitProtokoll, Zeichenbereich pEmpfangen)
{
super(pServer, pPort, pMitProtokoll);
kenntZeichenbereich1 = pEmpfangen;
}
// Dienste
public void bearbeiteNachricht(String pNachricht)
{
kenntZeichenbereich1.haengeAn(pNachricht);
kenntZeichenbereich1.neuerAbsatz();
if(hatTW.istGleich(hatTW.wortAn(pNachricht,1),"@links"))
{
hatStift.radiere();
hatStift.hoch();
hatStift.dreheBis(0);
hatStift.bewegeUm(1);
hatStift.zeichneKreis(3);
}
if(hatTW.istGleich(hatTW.wortAn(pNachricht,1),"@rechts"))
{
hatStift.radiere();
hatStift.hoch();
hatStift.dreheBis(180);
hatStift.bewegeUm(1);
hatStift.zeichneKreis(3);
}
}}