konstante Socketverbindung mit Verbindungscheck u. reconnect

Status
Nicht offen für weitere Antworten.

IT-MaD

Mitglied
Hallo Leute,

es geht um folgendes ... ich habe einen Client, der eigentlich permanent Daten senden wird, dementsprechend empfängt der Server ... soweit kein Problem ... soweit bin ich "nur" mit Lesen gekommen ... aber jetzt bin ich für ein paar Tipps dankbar ...

jetzt muss ich aber in regelmäßigen Abständen überprüfen (vom Server aus), ob die Verbindung noch steht bzw. der Client noch lebt ... und dann dementsprechend reagieren ... wie überprüfe ich am Besten bzw. am Einfachsten die Verbindung bzw. ob der Client noch lebt? ... die Abstände können zwischen 10 Sek. und 1 Minute liegen ...

vielen Dank im Voraus
MaD
 

J.C.

Mitglied
setz das read in eine Endlosschleife, bau noch einen Thread.sleep ein damit er nicht alle paar millisekunden auf Daten wartet, sondern z.B. alle halbe sekunde. Wenn der Client oder Server sich disconnected löst die Methode read (oder write) eine Exception aus die du abfangen kannst
 

IT-MaD

Mitglied
danke schon mal für deine Antwort ... das mit den Exception abfangen klingt schon mal ... mal schauen, wie das geht ...
 

J.C.

Mitglied
Hier ein Beispiel:

Code:
BufferedReader BR = new BufferedReader(new InputStreamReader( EinSocket.getInputStream() ) );
      
try
{
  while(true)
  {       
    Thread.sleep(1000);
    String Message = BR.readLine();
  }
}
catch(Exception e)
{
  if ("Connection reset".equals(e.getMessage()))
  {
    // Hier kannst den Socket dann schließen
  }
  else
  {
     // Normaler oder anderer Fehler
  }
}
 

IT-MaD

Mitglied
cool vielen lieben Dank ... wieder was was dazu gelernt ... soweit konnte ich das in mein Programm einbauen ... funzt auch super ... der Socket wird geschlossen ... aber der Server soll ja sofort wieder lauschen ... und hier hänge ich noch etwas ... ich werde nochmal etwas suchen und lesen ... und auch probieren ...
 

IT-MaD

Mitglied
k anstatt den Socket zu schließen, kann ich einfach wieder client.accept() nehmen ... in dieser Richtung kann ich glaube ich weitermachen ... muss da noch etwas rumtesten ...

danke erstmal für die Hilfe
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben