gpt4 book ai didi

c++ - 如何正确关闭 IOCP 服务器?

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

我可以找到大量关于启动 IOCP 服务器的文章,但没有一篇是关于正确关闭它的 =/

完成后关闭服务器的正确方法是什么?更具体地说,我已经使用 PostQueuedCompletionStatus() 告诉工作线程退出,但我是否还需要取消所有挂起的 IO,并在退出前关闭所有套接字?

我在 MSDN 上找到了 CancelSynchronousIo(),似乎我可以让每个工作线程在收到退出完成通知时调用此函数...这是正确的方法吗?

感谢您对此的任何帮助。

最佳答案

如果您遍历所有打开的连接并关闭所有套接字,那么所有挂起的 I/O 将自行完成并且服务器将关闭。您可以通过延迟关闭来关闭以允许完成任何挂起的写入数据,或者您可以关闭套接字上的延迟并导致丢弃挂起的写入数据并使用 RST 重置连接而不是干净地关闭。

我有一些 IOCP 服务器示例 here ,您可能已经看过,但它展示了如何实现干净关机。

关于c++ - 如何正确关闭 IOCP 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3663755/

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