# konstante Socketverbindung mit Verbindungscheck u. reconnect



## IT-MaD (12. Nov 2007)

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. (12. Nov 2007)

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 (12. Nov 2007)

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


----------



## J.C. (12. Nov 2007)

Hier ein Beispiel:


```
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 (12. Nov 2007)

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 (12. Nov 2007)

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


----------

