# TCP Socket-Verbindung überprüfen



## odem (9. Dez 2008)

Hallo zusammen!

ich baue folgendermaßen x-beliebige tcp verbindunge zu einem server auf:


```
Socket[] clientSocket = new Socket[amount];
int i;	
for (i = 0; i < amount; i++) {
  try {
    int r= i+1;
    clientSocket[i] = new Socket(ip, port);
    System.out.println("Verbindung nr.: " + r + " von " + amount + " zu " + ip + " aufgebaut. ");
   
  }catch{
...
```


Es werden wohl auch alles Verbindungen zumindest einmal aufgebaut, aber bei einer größeren Menge werden einige Verbindungen getrennt. Dies geschieht nur wenn ich über einen Router gehe sodass die Verbindungen wegen der begrenzten NAT-Tabelle des Router verworfen.

Wie kann ich die überprüfen ob die Verbindungen noch stehen bzw erkennen sobald die erste Verbindung verworfen wurde?

danke im vorraus

odem


----------



## DocRandom (10. Dez 2008)

schau Dir mal in der API *isConnected* an.

lg
DocRandom


----------



## odem (10. Dez 2008)

hi DocRandom,

danke erstmal für die antwort.

das hatte ich schon probiert...habe dabei das problem dass ich immer den wert true zurückbekomme.

ich hatte es folgendermaßen versucht:



```
for (i = 0; i < amount; i++) {
  try {
    int r= i+1;
    clientSocket[i] = new Socket(ip, port);
    for(int x = 0; x < i; x++){
      if(!clientSocket[x].isConnected()){  
        System.out.println("Verbindung nr. " + x + " bei " + i + " Verbindungen getrennt");
      }
    }
  }catch{
...
```

was ist da falsch?


----------



## HoaX (10. Dez 2008)

um das festzustellen musst du etwas senden, wenn klapp is die verbindung da, wenn eine ioexception o.ä. auftritt is die verbindung weg.

isConnected gibt den status auf deiner seite der verbindung zurück. wenn der router dazwischen das mapping verwirft bekommen die beiden enden das ja nicht mit. die merken nur irgendwann dass ein timeout auftritt.


----------



## Mentor49 (10. Dez 2008)

HoaX, sowas hab ich so schomal in C# gelöst und muss sagen, dass dies eine sehr unsaubere Lösung dafür ist, auch wenn ich keine andere wüsste...

Lg


----------

