# Timeout von connect



## Iron Monkey (14. Jan 2011)

Hi!


```
csock.connect( clientSocketAdr, 2000 );
```

In der Socket-Dokumentation steht nur drin: *Connects this socket to the server with a specified timeout value.*

Dies ist mir aber noch nicht ganz klar, was genau das Timeout für die Socket-Verbindung macht! Was passiert dann mit der Socket-Verbindung, wenn die 2 Sekunden vorbei sind?

Was passiert, wenn ich die 2 Sekunden auch in setSOTimeout setze? Macht das auch einen Sinn?

Gruß
Iron Monkey


----------



## MQue (14. Jan 2011)

Also ich würd mal auf die schnelle sagen, dass innerhalb der 2000ms eine Connection erzeugt werden muss, sonst zieht eine Exception (SocketTimeoutException).


----------



## Iron Monkey (14. Jan 2011)

Ich möchte ein Beispiel geben, was ich unbedingt verstehen will, ob es auch auf das Timeout betrifft.

Also, nehmen wir mal an:

Ich habe eine Funktion, die folgendes abläuft:

- Socket-Verbindung mit IP und Port öffnen
- Das Paket senden
- Beispielweise nach 2-3 Sekunden kommt das Paket vom Server zurück
- Mit dem Paket verarbeiten
- Unter Finally Socket-Verbindung, ... usw. schliessen, auch wenn irgendein Exception kommt

Beispiel:

Ich möchte als Client alle Datensätze aus der DB holen. Es sind ungefähr: 100.000 Datensätze und der Server gibt mir pro Anfrage 1.000 Datensätze, d.h. ich (Client) müsste 100 Mal den Server anfragen.

So, wenn ich die o.g. Funktion 100 Mal ausführe, würde es bedeuten, dass das Timeout trotzdem weiterläuft, obwohl ich das Socket auch einwandfrei geschlossen habe ( siehe oben Finally ) oder wird das Timeout nach dem Erzeugen ( csock = new Socket(); ) wieder auf 0 gesetzt?

Gruß
Iron Monkey


----------



## KrokoDiehl (14. Jan 2011)

Den Timeout den du bei 
	
	
	
	





```
connect()
```
 angeben musst, ist nur für das Verbinden selbst. Wenn dein Socket also länger als so viele Millisekunden braucht, um die Verbindung herzustellen, dann wird der Versuch abgebrochen (wie _MQue_ schon sagte).
Für das Senden und Empfangen gilt diese Einstellung nicht.


----------



## Iron Monkey (14. Jan 2011)

OK, dann habe ich das verstanden!

Danke!

Gruß
Iron Monkey


----------

