Hi Leute,
ich möchte meine eigene BufferedWriter Klasse schreiben, bei der newLine() und flush() gleich in der write(String) Funktion mit eingebaut sind und diese in einer kleinen Client Server Anwendung nutzen.
Meine Eigene Klasse:
Und hier der Client:
Wenn ich das ganze bei gestartetem Server aufrufe, gibts es einen: java.lang.StackOverflowError
Wenn ich die Client-Server Anwendung mit BufferedWriter nutze funktioniert alles, aber ich möchte ja meine eigene Klasse nutzen.
Ich hoffe ihr könnt mir helfen.
Gruß
Deschi
ich möchte meine eigene BufferedWriter Klasse schreiben, bei der newLine() und flush() gleich in der write(String) Funktion mit eingebaut sind und diese in einer kleinen Client Server Anwendung nutzen.
Meine Eigene Klasse:
Code:
import java.io.*;
public class MyBufferedWriter extends BufferedWriter
{
public MyBufferedWriter(Writer s)
{
super(s);
}
public void write(String s) throws IOException
{
super.write(s);
super.newLine();
super.flush();
}
}
Und hier der Client:
Code:
import java.io.*;
import java.net.*;
public class InOutClient {
public static void main(String[] args) {
// socket auf localhost port 1234 konstruieren
try {
Socket s = new Socket("localhost",1234);
System.out.println("Bitte eine Nachricht an den Server schicken.");
System.out.println("Dieser antwortet dann mit dem selben Text in Großbuchstaben.");
System.out.println("Zur Programmbeendigung einfach goodbye schicken");
BufferedReader key_b; //BufferedReader für die Tastatur-Eingabe
String text; //Tastatur Eingabe speichern
MyBufferedWriter my_out;
BufferedReader in;
while(true){
key_b = new BufferedReader( new InputStreamReader( System.in ) );
text = key_b.readLine();
my_out = new MyBufferedWriter(new OutputStreamWriter(s.getOutputStream()));
out.write(text);
//my_out.newLine();
//my_out.flush();
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.print("Vom Server: ");
System.out.println(in.readLine());
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
System.out.println("verbindung beendet");
} catch (IOException e) {
System.out.println("verbindung beendet");
}
}
}
Wenn ich das ganze bei gestartetem Server aufrufe, gibts es einen: java.lang.StackOverflowError
Wenn ich die Client-Server Anwendung mit BufferedWriter nutze funktioniert alles, aber ich möchte ja meine eigene Klasse nutzen.
Ich hoffe ihr könnt mir helfen.
Gruß
Deschi