Netzwerkprogrammierung

Aus SibiWiki
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. …“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


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:

  1. Connection.java hat die folgenden Methode, um Nachrichten vom Server zu empfangen:
    1. public String receive()
  2. Client.java hat die folgenden Methode, um Nachrichten vom Server zu empfangen:
    1. public void processMessage(String pMessage

Die einfachere (=mit weniger Möglichkeiten) ist die Klasse Connection.java. Diese beiden Klassen werden in unterschiedlichen Szenarien benutzt:

  1. Connection.java wird genutzt, wenn der Server nur auf Anfragen des Clients reagiert, wie z.B. bei Mailprotokollen (SMTP oder POP3).
  2. 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

  1. 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);
   }
   ....
 }

  1. 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.
   }
 }