Iam хочет написать программу сокетов на основе libev. Я заметил, что несколько примеров, указанных в https://github.com/coolaj86/libev-examples/blob/master/src/unix-echo-server.c, используют обратные вызовы на основе init. Например,розетки с использованием libev
main() {
......
ev_io_init(&client.io, client_cb, client.fd, EV_READ|EV_WRITE);
ev_io_start(EV_A_ &server.io);
}
static void client_cb (EV_P_ ev_io *w, int revents)
{
if (revents & EV_READ)
{
....
} else if (revents & EV_WRITE) {
......
}
}
Мой вопрос исходит от ожидаемого поведения, скажем, к примеру, все, что я читал, когда в EV_READ хранится в связанном списке. Допустим, я продолжаю читать свободный поток пакетов, я когда-нибудь получу шанс попасть в EV_WRITE? Я должен отправить все, что я получаю, через чтение в другой сокет. Так будет ли это когда-то EV_READ и второй раз EV_WRITE? Другими словами, когда EV_WRITE будет разблокирован? Или мне нужно заблокировать EV_READ для вызова EV_WRITE. Может кто-нибудь помочь мне понять это?
http://codefundas.blogspot.com/2010/09/create-tcp-echo-server-using-libev.html – enthusiasticgeek