У меня есть некоторые используют код libev о том, как иметь дело с подключением тайм-аут, как показано ниже (см http://lists.schmorp.de/pipermail/libev/2011q2/001365.html):как проверить, если соединение установлено при использовании libev с неблочный розеткой
sd = create_socket()
set_socket_nonblock(sd)
connect("127.0.0.1", port) // connect to an invalid port
ev_io_init(&w_io, connect_cb, sd, EV_WRITE)
ev_io_start(...)
ev_timer_init(&w_timer, timeout_cb, 5.0, 0)
ev_timer_start(...)
и где-нибудь выполнить ev_run. Вызывается connect_cb и в этой функции обратного вызова я проверил revents с помощью EV_ERROR, результат не является ошибкой. Это странно, потому что я предоставляю неверный номер порта, который не прослушивается на локальной машине. Во всяком случае, я пытаюсь отправить сообщение в функцию connect_cb, получив ошибку 111, что означает, что соединение отказалось. Я смущен! Как проверить правильность установления соединения при использовании неблокированного сокета?