Frage

    

Diese Frage bereits eine Antwort hier:

    
            
  •              Wie Socket konfigurieren Timeout verbinden                                      11 Antworten                          
  •     
    

Ich habe eine Anwendung, die mit einem Host-Verbindung, die unten sein könnte. Wenn der Host will ich immer noch nicht für die ca. 30 Sekunden warten, um es zu einer Zeitüberschreitung kommt. Ich bin mit blockierende Sockets im Moment.

Ich habe bei socket.poll gesucht () und socket.select (), aber ich habe lieber nur ein Mal auf dem Sockel setzen. Ich habe nichts dagegen, wenn es sich um eine Einstellung ist ich habe irgendwo im System zu tun. Auch schien ich diese Umfrage zu verstehen, und wählen Sie nicht mit dem verbindungsorientierten Kommunikation -is diese korrekt arbeiten?

Wenn dies absolut unmöglich ist, was für eine nette Art und Weise ist es, die Ergebnisse zu erhalten, ich Umfrage wollen, wählen Sie oder eine andere Technik?

War es hilfreich?

Lösung

Siehe Beginconnect und Asynchrone Programmierung Übersicht

IAsyncResult asr = socket.BeginConnect( ip, port, null, null );

bool res = asr.AsyncWaitHandle.WaitOne( 10000, true );  // 10 sec timeout

Update: Es gibt ein besseres Beispiel hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top