返回的epoll_event中,data字段与使用event_ctl(2)(EPOLL_CTL_ADD,EPOLL_CTL_MOD)传入的data一致。 (所以一般来说用fd足矣) ,而events字段是此fd触发的事件。与epoll_wait自比,后者允许应用程序安全的等待(在调用epoll_wait(),设置自定义的信号掩码,并在epoll_wait()结束后恢复),直到文件描述等...
在ep_poll()函数中,timeout参数决定是否阻塞等待以及何时结束等待。当timeout为-1时,函数会持续阻塞等待事件的发生;当timeout为非零值时,则在事件响应或超时后返回。理解timeout参数对流程的影响有助于我们更合理地使用epoll_wait(),特别是在需要频繁检查事件响应的场景下。epoll_wait()返回后,如果...
所以,在服务端读取的时候,一定要先读报文,从报文中获得此次报文的大小,然后依次来作为接收结束的判断条件。这样上层就可以根据read函数的返回值不同,区分出(1)还有报文可读(2)报文已经读完(3)对方关闭socket三种情况了。