Wenn man das Client-Programm startet, sollte der Server bereits laufen und auf dem Port hören – darauf warten, dass ein Client um eine Verbindung anfragt. Das Client-Programm öffnet als Erstes einen mit dem Server verbundenen Socket, der auf dem angegebenen Hostnamen und Port läuft:
Listing F
Wenn man dieses Programm verwenden möchte, muss der Hostname im Socket-Konstruktor auf den Namen des Rechners im eigenen Netzwerk geändert werden. Das ist der Rechner, auf dem die Server-Applikation läuft. Das Programm legt zudem die Portnummer 4444 fest, wenn es seinen Socket erzeugt. Das ist eine entfernte Portnummer (die Nummer eines Ports auf dem Server-Rechner) und bezeichnet den Port, auf dem der Server hört. Der Socket des Client ist an einen beliebigen verfügbaren Port gebunden (das heißt ein Port auf dem Client-Rechner).
Als Nächstes kommt die While-Loop, welche die Kommunikation zwischen dem Client und dem Server umsetzt. Die Client-Applikation liest die Eingabe aus der Tastatur (oder Standardeingabe) und sendet sie an den Server. Deshalb wird der Server mit demselben String antworten.
Listing G
Zu beachten ist, dass der Client die Verbindung beendet, wenn der Server „Bye.“ schickt. Dazu muss man den String von der Clientseite aus schicken, sodass er an den Server übertragen wird, der ihn dann als Antwort zurücksendet. Der Client muss alle Ströme und Verbindungen beenden.
Listing H
Fazit
Das Java.net-Paket stellt eine mächtige und flexible Infrastruktur für die Netzwerkprogrammierung zur Verfügung. Es ist empfehlenswert, bei diesem Paket nachzusehen, wenn man wissen möchte, welche Klassen zur Verfügung gestellt werden.
Ressourcen für die weiterführende Lektüre
- java.net package JavaDoc (Sun Microsystems)
- Java tutorial: Networking basics (Sun Microsystems)
- Datagrams and UDP protocols programming (Sun Microsystems)
- Handling Java I/O via remote connections (TechRepublic)
Neueste Kommentare
Noch keine Kommentare zu Nahtlose Socket-Programmierung in Java
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.