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 2014-06-15 03:13:56