Estoy cambiando una conexión de socket en una secuencia de comandos a una conexión sin bloqueo. En un tutorial encontré las líneas:utilizando una conexión de socket sin bloqueo en C
x=fcntl(s,F_GETFL,0); // Get socket flags
fcntl(s,F_SETFL,x | O_NONBLOCK); // Add non-blocking flag
Así que las agregué después de crear mi socket y antes de la declaración connect. Y ya no bloquea :) pero tampoco se conecta. No recibo ningún error, la conexión solo devuelve -1. Si comento estas líneas, se conecta.
¿Qué más necesito agregar para obtener una conexión sin bloqueo para conectar?
Hmm, ¿cuál es el punto aquí? ¿En qué se diferencia de * blocking * 'connect'? –
@NikolaiNFetissov Punto razonable, he editado mi respuesta para eliminar el fragmento de código como potencialmente engañoso y enfatizo el uso de TEMP_FAILURE_RETRY – simonc