gpt4 book ai didi

sockets - libevent如何检测到套接字已关闭

转载 作者:行者123 更新时间:2023-12-03 11:55:55 24 4
gpt4 key购买 nike

如果我将特定套接字的事件添加到事件循环,
例如,TCP连接套接字。
那么可能会发生 socket 被关闭的情况,
那么libevent将如何行动?
它可以检测到吗?

谢谢!

最佳答案

编辑:我认为我一开始误解了您的问题。

如果您的意思是说 socket 是从远端关闭的

根据文档,您可以使用 event_new() event_add() 调用来注册套接字。确保您指定EV_READ,因为您对套接字关闭时的状态感兴趣。

请记住,可读取的数据和封闭的套接字之间的文件描述符准备就绪没有区别。通常,您必须阅读套接字以找出哪个条件为真,但是如果您不想阅读套接字,则可以在here中寻找提示。

如果您是指套接字在本地关闭(文件描述符已关闭)

永远不会定义在关闭后使用文件描述符,并且始终会导致未定义的结果。这不是特定于libevent。关闭文件描述符之前,必须确保程序中没有其他线程正在使用它,并且必须确保程序中没有其他部分将来会尝试使用它。这意味着在您关闭libevent的同时注销它的文件描述符。

关于sockets - libevent如何检测到套接字已关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16702874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com