Netzwerkprogrammierung
Version vom 28. März 2012, 09:31 Uhr von Akaibel (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Kategorie:Netzwerke(IF) Kategorie:Informatik = Allgemeines = Netzwerkprogrammierung beschäftigt sich mit der Entwicklung von verteilten Anwendungen. …“)
Allgemeines
Netzwerkprogrammierung beschäftigt sich mit der Entwicklung von verteilten Anwendungen.
Dabei kommuniziert zumeist ein Server mit mehreren Clients.
Connection.java vs. Client.java
Die Schnittstellen fürs Zentralabitur stellen zwei Klassen zur Verfügung, mit denen auf der Client-Seite gearbeitet werden kann:
- Connection.java hat die folgenden Methode, um Nachrichten vom Server zu empfangen:
public String receive()
- Client.java hat die folgenden Methode, um Nachrichten vom Server zu empfangen:
public void processMessage(String pMessage
Die einfachere (=mit weniger Möglichkeiten) ist die Klasse Connection.java. Diese beiden Klassen werden in unterschiedlichen Szenarien benutzt:
- Connection.java wird genutzt, wenn der Server nur auf Anfragen des Clients reagiert, wie z.B. bei Mailprotokollen (SMTP oder POP3).
- Client.java wird genutzt, wenn der Server von sich aus aktiv werden kann. Das ist z.B. bei einem Chat der Fall, denn hier muss der Server Nachrichten eines anderen Client von sich aus an alle Clients weiterleiten können.
Connection.java vs. Client.java in der Programmierung
- Connection.java wird als Attribut benutzt, z.B.:
public class SMTPClient{
private Connection verbindung;
public SMTPClient(){
//Verbindung zum Mailserver herstellen
verbindung = new Connection("192.168.100.2", 25);
}
....
}
- Von Client.java dagegen wird eine Unterklasse gebildet, die die Fähigkeiten von Client.java erbt. Dabei muss die Methode
public void processMessage(String pMessage)
überschrieben werden, damit man auf die Nachrichten des Servers reagieren kann. Z.B.:
public class ChatClient extends Client{
public ChatClient(){
//Konstruktor der Klasse Client aufrufen!
//Dadurch wird die Verbindung zum (selbstprogrammierten) Chatserver hergestellt
super("192.168.100.100", 4444);
}
public void processMessage(String pMessage){
// jetzt das Protokoll abarbeiten
if(pMessage.startsWith("neu")){
// usw.
}
// usw.
}
}