C libevent和非阻塞套接字

C libevent和非阻塞套接字,c,sockets,libevent,C,Sockets,Libevent,我知道为了使用libevent监视套接字,首先应该使用正确的参数调用event\u set() libevent文档说明event_set()的event参数可以是EV_READ或EV_WRITE。这个事件参数就是要注意的事件 但是EV_读取和EV_写入对应哪些套接字事件?我的意思是,我如何监视连接状态的变化,而不是监视传入消息 我发现在libevent的文档方面非常优秀。在上,可以很好地概括不同事件标志的实际含义。从该链接: EV_READ:此标志表示当 提供的文件描述符已准备好读取 EV_

我知道为了使用libevent监视套接字,首先应该使用正确的参数调用
event\u set()

libevent文档说明event_set()的
event
参数可以是EV_READ或EV_WRITE。这个事件参数就是要注意的事件

但是EV_读取和EV_写入对应哪些套接字事件?我的意思是,我如何监视连接状态的变化,而不是监视传入消息

我发现在libevent的文档方面非常优秀。在上,可以很好地概括不同事件标志的实际含义。从该链接:

  • EV_READ:此标志表示当 提供的文件描述符已准备好读取

  • EV_WRITE:此标志表示活动的事件 当提供的文件描述符准备好写入时

  • 电动汽车信号:用于执行信号检测

  • EV_PERSIST:表示事件是持久的

  • EV_ET:表示事件应为边缘触发,如果 基础事件库后端支持边缘触发的事件。 这会影响EV_READ和EV_WRITE的语义

因此,明确回答您的问题:EV_READ对应于可以从套接字或bufferevent读取数据,据我所知,这是libevent套接字的等价物。EV_WRITE对应于准备将数据写入的套接字/缓冲事件。您可以将读/写回调设置为实际执行数据读写,并将
cb
参数设置为


结构事件*事件\新建(结构事件\基础*基础,evutil \套接字\ fd,
短什么,事件回调,无效*arg)


如果你正在用LiBeEnter做Socket IO,那么,你可能真的想考虑使用——它们是我在我的项目中使用的一个项目,StnsiMon,./p>Irc:如果连接被关闭,你会得到一个正常的读写事件,当你尝试读/写时,你会得到零字节读/写。当你写作时,你也可能得到一个信号管。这表示另一端已关闭连接。