Hallo,
wenn ich ein ServerSocket erstelle und sich ein Client verbindet, möchte ich solange Nachrichten des Clients auslesen, bis die Verbindung clientseitig geschlossen wird.
Nur weiß ich nicht, wie der Server erfahren kann, ob eine Verbindung geschlossen wurde.
Hier mein Codeausschnitt:
Server:
Client:
Statt
möchte ich eine Überprüfung haben, ob die Verbindung vom Clienten schon geschlossen wurde (also
ausgeführt wurde).
oder
ist immer true, solange die Verbindung nicht vom SERVER geschlossen wurde.
Wie kriege ich das hin?
Vielen Dank
MfG
gilioner
wenn ich ein ServerSocket erstelle und sich ein Client verbindet, möchte ich solange Nachrichten des Clients auslesen, bis die Verbindung clientseitig geschlossen wird.
Nur weiß ich nicht, wie der Server erfahren kann, ob eine Verbindung geschlossen wurde.
Hier mein Codeausschnitt:
Server:
Code:
try{
ServerSocket server = new ServerSocket(6000);
int count=0;
while(true)
{
System.out.println("Server wurde gestartet (Port "+server.getLocalPort()+")");
Socket socket = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String clientwrite="";
while(!clientwrite.equalsIgnoreCase("bye"))
{
clientwrite = in.readLine();
System.out.println("Client sagt: "+clientwrite);
}
in.close();
socket.close();
}
}catch(Exception e)
{
System.out.println("Fehler");
}
Client:
Code:
try
{
Socket client = new Socket("localhost",6000);
//OutputStream out = client.getOutputStream();
//OutputStreamWriter writer = new OutputStreamWriter(client.getOutputStream());
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
writer.write("test\n");
writer.write("bye\n");
writer.close();
client.close();
}catch(Exception e)
{
System.err.println("Fehler: "+e.getMessage());
}
Statt
Code:
while(!clientwrite.equalsIgnoreCase("bye"))
Code:
client.close()
Code:
!socket.isClosed()
Code:
socket.isConnected()
Wie kriege ich das hin?
Vielen Dank
MfG
gilioner