Steckdosen mit libev

Iam-suchen zu schreiben eine socket-Programm basiert auf libev. Ich bemerkte, dass mehrere Beispiele, wie dies in https://github.com/coolaj86/libev-examples/blob/master/src/unix-echo-server.c verwenden Sie die call-backs basierend auf init. Zum Beispiel,

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) {

     ......
  }
}

Meine Frage kommt aus dem erwarteten Verhalten, zum Beispiel sagen, alle, die ich Lesen, wenn in EV_READ werden in einer verknüpften Liste. Können sagen, ich bekomme den freien Fluss der Pakete zu Lesen, werde ich jemals die chance bekommen, um in EV_WRITE? Ich habe zu senden, alles, was ich "recv" - Vorgang durch Lesen, um einen anderen sockel. So Wird es einmal sein EV_READ und zweiten mal EV_WRITE? In anderen Worten wird, wenn EV_WRITE freigeschaltet? Oder muss ich block EV_READ für EV_WRITE genannt zu werden. Kann mir jemand helfen, dies verstehen?

InformationsquelleAutor user2085689 | 2013-02-25
Schreibe einen Kommentar