Download ServerVerbindung.java
/* Diese Klass Serververbindung ist ein erstes lauffähiges
* Programmfragment zur Weiterverwendung
* im IRC-Client im Kurs Programmieren für das Internet
*/
// benötigte Java-Erweiterungen
import java.io.*;
import java.net.*;
public class ServerVerbindung {
// Datenfeld der Klasse ServerVerbindung
Socket chatSocket; // Objekt für die Datenverbindung zum Server
PrintWriter out; // Objekt für Schreibeströme
BufferedReader in; // Objekt für Leseströme
// Konstruktor
public ServerVerbindung() {
// Zuerst mal allen Objekten Standardeinstellungen geben (Nullen)
chatSocket = null;
out = null;
in = null;
}
// Methoden der Klasse ServerVerbindung
void verbindungHerstellen() throws IOException {
// Erste Methode, um zum gewünschten Server
// (hier szm.geist-soz... eine Verbindung herzustellen
// Diese Methode muss abgefangen sein, da IO und/oder Netzwerkfehler
// auftreten können
try {
chatSocket = new Socket("szm.geist-soz.uni-karlsruhe.de", 7);
out = new PrintWriter(chatSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(chatSocket.getInputStream()));
}
catch (UnknownHostException e) {
// Fehlermeldung bei unbekanntem host
System.err.println("Don't know about host: szm.");
System.exit(1);
}
catch (IOException e) {
// Fehlermeldung 'keine IO-Verbindung'
System.err.println("Couldn't get I/O for the connection to: szm.");
System.exit(1);
}
}
void datenSchreiben(String DatenInput) {
// Methode um Daten an den Server zu schicken
out.println(DatenInput);
}
String datenLesen() throws IOException {
// Methode um Daten des Servers zu lesen
return (in.readLine());
}
void verbindungKappen() throws IOException {
// Methode, die bestehende Verbindungen Socket und IO-Ströme schließt
out.close();
in.close();
chatSocket.close();
}
}
Download TestVerbindung.java
/* Programm um die Klasse Serververbindung zu testen. */
import java.io.*;
import java.net.*;
class TestVerbindung {
public static void main (String[] args) throws IOException {
// Neue Verbindung anmelden - Konstruktor der Klasse
// Serververbindung aufrufen
ServerVerbindung verb = new ServerVerbindung();
// Verbindung herstellen
verb.verbindungHerstellen();
// Ein bisschen Konsolenkosmetik
System.out.println("Testprogramm für Klasse Serververbindung!");
System.out.println("Beenden mit ^C");
System.out.println("Bitte geben Sie einen Text ein!");
System.out.println("-----------------------------------------");
// Reader für Konsoleneingabe initialieren und instantiieren
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
// Variable für Konsoleneingabe
String userInput;
// Schleife für Konsoleneingabe
while ((userInput = stdIn.readLine()) != null) {
// Daten der Konsoleneingabe werden an den Server geschickt
verb.datenSchreiben(userInput);
// Daten des Servers werden auf den Bildschirm gebannt
System.out.println("echo: " + verb.datenLesen());
}
// Sitzung beenden und Verbindungen kappen
verb.verbindungKappen();
}
}