Hallo,
ich komme einfach nicht darauf wieso es nicht geht.
Server:
Client:
Das Problem ist, dass dieser Code
nicht ausgeführt wird?!
Wie bekommt man die while schleife zum laufen?
vielen dank
ich komme einfach nicht darauf wieso es nicht geht.
Server:
Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class MultithreadedServer {
private static int port=9001;
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(port);
while (true) {
//Warte auf Verbindungen
final Socket sock = server.accept();
//Wird eine Verbidnung angenommen, dann bearbeite sie in einem neuen Thread
new Thread(new AntwortProzess(sock)).start();
}
}
private static void endeMitFehler(String nachricht) {
System.out.println(nachricht);
System.exit(1);
}
/**
* Erzeuge einen Server
* @param port Listen-Port
*/
private MultithreadedServer(int port) {
this.port = port;
}
private static class AntwortProzess extends Thread {
private final Socket socket;
public AntwortProzess(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try (Socket socket = this.socket) {
System.out.print("true");
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
out.write("nachteich");
while (true){
String line = reader.readLine();
if (line!=null){
System.out.print(line);
}
}
} catch (IOException ex) {
}
}
}
}
Client:
Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class Client extends Thread {
public static void main(String[] args) throws IOException {
Client j = new Client();
j.start();
}
/**
* Erzeuge einen Client
* @param hostname Name des entfernten Rechners
* @param port Port für die Verbindung
* @param id id des Client-Threads
*/
@Override
public void run() {
//Diese Methode wird ausgeführt, wenn ein Client-Thread startet
//Baue eine Verbindung zum entfernten Rechner auf
try (Socket verbindung = new Socket("localhost", 9001)) {
//Öffne einen InputStream
BufferedReader reader = new BufferedReader(new InputStreamReader(verbindung.getInputStream()));
//Lies eine Textzeile vom Servedr
//Berechne die benötigte Zeit
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(verbindung.getOutputStream()));
out.write(reader.readLine());
out.flush();
out.write("Verbindung");
out.flush();
} catch (IOException ex) {
System.out.println( ": " + ex.getMessage());
}
}
}
Das Problem ist, dass dieser Code
Code:
while (true){
String line = reader.readLine();
if (line!=null){
System.out.print(line);
}
}
nicht ausgeführt wird?!
Wie bekommt man die while schleife zum laufen?
vielen dank
Zuletzt bearbeitet von einem Moderator: