Non blocking socket - wie überprüfe ich, ob eine Verbindung erfolgreich war?

Nach dem korrekten Einrichten eines nicht blockierenden Sockets gehe ich folgendermaßen vor, um eine Verbindung herzustellen:

Call Connect an der Steckdose.Wenn es 0 zurückgibt, habe ich bereits eine Verbindung hergestellt. Wenn nicht, überprüfe errno.Wenn errno nicht EINPROGRESS ist, liegt ein Fehler vor.wenn errno EINPROGRESS ist, kann ich den Verbindungsstatus folgendermaßen abfragen: select_status = sock_select (FD_SETSIZE, NULL, & file_descriptor_set, NULL & timeout); Wenn select_status> 0 ist, überprüfen Sie mit FD_ISSET, ob der Dateideskriptor festgelegt ist.

Ist das korrekt? Und sollte ich nach fd_write suchen, nicht nach fd_read? Soll ich getsockopt nach select aufrufen? Mit welchen Argumenten? Ich kann keine klare Erklärung dafür finden, was zu tun ist.

Ich verbinde mich, aber mein Programm meldet es nicht richtig, daher verwende ich select falsch oder es liegt daran, dass ich getsockopt nicht überprüfe.

Was sagt mir, dass die Verbindung hergestellt wurde?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage