Ich weiss nicht ob ich ein Verständnisproblem habe, oder ob hier etwas im Code nicht passt.
Ich starte den Server er läuft doch dann bis zu "Socket client = ss.accept()" und wartet dann hier bis die Verbindung hergestellt wird.
Dann starte ich den Client, Client verbindet sich mit dem Server und das Programm läuft im Server weiter bis in die Schleife und wartet dann bei "einlesen = br.readLine();".
Wenn ich jetzt in der TCPClient Klasse einen Buchstaben eingebe, müsste dieser doch mithilfe des Outputstreams(Client) in den InputStream(Server) geschreiben werden. Dann wird der Buchstabe dem "String einlesen" zugewiesen. Jetzt müsste doch eigentlich "System.out.println("xxxx");" ausgelöst werden und ich müsste "xxxx" in der Konsole des Server sehen oder ?
Bei mir steht aber immer nur "Client connected" in der Konsole des Servers egal wie oft ich Buchstaben eingebe. Warum ist das so ?
Ich starte den Server er läuft doch dann bis zu "Socket client = ss.accept()" und wartet dann hier bis die Verbindung hergestellt wird.
Dann starte ich den Client, Client verbindet sich mit dem Server und das Programm läuft im Server weiter bis in die Schleife und wartet dann bei "einlesen = br.readLine();".
Wenn ich jetzt in der TCPClient Klasse einen Buchstaben eingebe, müsste dieser doch mithilfe des Outputstreams(Client) in den InputStream(Server) geschreiben werden. Dann wird der Buchstabe dem "String einlesen" zugewiesen. Jetzt müsste doch eigentlich "System.out.println("xxxx");" ausgelöst werden und ich müsste "xxxx" in der Konsole des Server sehen oder ?
Bei mir steht aber immer nur "Client connected" in der Konsole des Servers egal wie oft ich Buchstaben eingebe. Warum ist das so ?
Java:
public class TCPServer {
public static void main(String[]args) {
try(ServerSocket ss = new ServerSocket(44);
Socket client = ss.accept();
InputStream is = client.getInputStream();
Reader isr = new InputStreamReader(is);
BufferedReader br= new BufferedReader(isr);
OutputStream os = client.getOutputStream();
Writer osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);)
{
System.out.println("Client connected");
String einlesen;
do {
einlesen= br.readLine();
System.out.println("xxxx");
if(einlesen==null);
bw.write("Ok\n");
bw.flush();
}while(true);
}
catch(IOException e) {
}
}
}
Code:
public class TCPClient {
public static void main(String[]args) {
try(Socket s = new Socket("localhost",44);
InputStream is = s.getInputStream();
Reader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
OutputStream os = s.getOutputStream();
Writer isw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(isw);
Scanner scanner = new Scanner(System.in);)
{
while(true) {
System.out.println("Geben sie einen Buchstaben ein: ");
String buchstabe = scanner.next();
if(buchstabe.equals("exit")) break;
bw.write(buchstabe);
bw.flush();
}
}
catch(IOException e) {
}
}
}