# Verbindung zum Server prüfen mit einem vorhandenem Socket



## coolex (26. Mai 2007)

Hallo!

ich habe einen Client geschrieben, der eine Verbindung zu einem auch selbstgeschriebenem Server aufbaut.
Nun habe ich beim Client einen thread eingebaut, der städndig prüfen soll, ob der Server noch da ist. Allerdings funktioniert das nicht so wie ich es mir vorgestellt habe.

So sieht mein thread aus:
	
	
	
	





```
...
public void run(){
		while(!stop){
			// if there is still a connection
			if(server.isConnected()){
				//macht was
			// if there is no connection anymore
			}else if(!server.isConnected()){
				stop = true;
				System.out.println("Server closed the connection!");
			}
		}
	}...
```

Auf der Serverseite habe ich folgendes:
	
	
	
	





```
public boolean isConnected(){
		return socket.isConnected();
	}
```

Doch wenn ich meinen Server ausschalte seigt mir der Rückgabewert von isConnected() immer noch true an.
Wie kann ich also mit einem vorhandenem Socket, das schon eine erfolgreiche Verbindung zum Server aufgebaut hat, prüfen, ob der Server noch da ist?

Hoffe, ihr könnt mir helfen.
Danke

Alex


----------



## coolex (27. Mai 2007)

Ich versuche mal die Frage einfacher zu stellen.

Wie kann ich einfach bei einer vorhandenen Socket-Verbindung clientseitig prüfen, ob der Server noch da ist?
Ich möchte nicht nochmal einen neuen Socket erstellen nur um zu prüfen, ob der Server noch da ist.

Ich bitte euch um Rat. BITTE

Danke!
 Alex


----------



## Tellerrand (27. Mai 2007)

Afaik geht das nur über testen, also Paket senden und schauen obs ankommt


----------



## coolex (27. Mai 2007)

Danke für die schnelle Antwort.

Jetzt fällt mir ein, dass ich sowas ähnliches schonmal mit Datagrams gemacht habe.
In meinem Fall handelt es sich aber um eine verbindungsorientierte Verbindung, daher ist es mir in diesem nicht ganz bekannt, wie ich das Problem trotzdem lösen soll, weil ich noch nie einzelne Packete mit sockets verschickt habe.

Wie kann ich nun ein Packet an den Server schicken und testen, ob es angekommen ist? Das habe ich mit Sockets noch nie gemacht.

Hoffe um Weiterhilfe! 

Danke.


----------



## HoaX (27. Mai 2007)

sende einfach beliebige daten. wenn die verbindung zusammengebrochen ist fliegt ne exception. wenn du deinen server "richtig" beendest, sprich beim beenden der anwendung auch den socket schließt, dann weiß auch der client bescheid. ansonsten dauert es eben bis die verbindung einen timeout hat.


----------

