Libevent:当相关套接字被本地程序关闭时是否触发事件



如果我为accept()返回的连接套接字添加一个事件,如下所示

    event_set(&conn_ev, connfd, EV_READ|EV_PERSIST, on_recv, NULL);
    event_base_set(base, &conn_ev);
    event_add(&conn_ev, NULL);

如果在某个时候,本地程序(而不是对等端)关闭套接字,会触发conn_ev吗?如果是,如何检测该事件是否是由于套接字关闭引起的?

是recv(connfd,…)返回-1和errno设置EBAD或任何其他情况?

谢谢!

如果套接字被另一端很好地关闭,则所有套接字都标记为可读,read返回零。当接收到错误时,它们被标记为可读或可写,readwrite返回-1

参见socket(7)手册页中的状态表

相关内容

  • 没有找到相关文章

最新更新