Folgendes ist die AufgabenStellung:
Wenn ich den Server starte und dann den Client starte bekomm ich auf der Konsole "Gebe etwas an" angezeigt, dann kann ich so oft wie ich will etwas eingeben aber es passiert nichts. Es müsste doch eigentlich "OK" ausgegeben werden oder ? aber warum passiert das nicht ? Ich hab da das totale Verständnisproblem
- a) Schreiben Sie einen TCP Server, der wiederholt Textzeilen von einem Client empfangen kann. Der Server sendet dem Client nach jeder empfangenen Zeile ein OK zurück.
- b) Schreiben Sie einen TCP Client, der wiederholt von der Standardeingabe Textzeilen liest und diese an den Server aus Aufgabenteil a) sendet.
Java:
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
public class server {
public static void main(String[]args) {
try(ServerSocket ss = new ServerSocket(5554);)
{
while(true) {
try(Socket connection = ss.accept();
OutputStream os = connection.getOutputStream();
InputStream is = connection.getInputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
BufferedReader br = new BufferedReader(new InputStreamReader(is));)
{
String zeile = br.readLine();
bw.write("OK");
bw.flush();
}
catch(IOException e) {
e.printStackTrace();
}
}
}
catch(IOException e) {
e.printStackTrace();
}
}
}
Code:
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.io.OutputStream;
import java.io.InputStream;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class client {
public static void main(String [] args) {
try(Socket connection = new Socket("localhost",5554);)
{
Scanner s = new Scanner(System.in);
while(true) {
try(OutputStream os = connection.getOutputStream();
InputStream is = connection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));)
{
while(true) {
System.out.println("Gebe etwas ein");
String x = s.next();
bw.write(x);
System.out.println(br.readLine());
}
}
catch(IOException e) {
e.printStackTrace();
}
}
}
catch(IOException e) {
e.printStackTrace();
}
}
}