gpt4 book ai didi

c++ - Asio 中新连接出现 "Already Open"错误

转载 作者:可可西里 更新时间:2023-11-01 02:51:43 26 4
gpt4 key购买 nike

我正在使用 Asio 的非 Boost 版本,并根据 http://think-async.com/Asio/asio-1.11.0/doc/asio/tutorial/tutdaytime3.html 中的代码创建了一个 TCP 服务器。

我可以很好地建立与服务器的连接,但只是第一次。如果我断开我的客户端然后尝试再次连接,Asio 将“已经打开”错误传递给我的接受处理程序。从代码中可以看出,在接受连接之前,会创建一个 tcp_connection 类的新实例。我不确定为什么会收到此错误,即使它是一个完全独立的实例,其套接字不应已打开。任何帮助将不胜感激。

提前致谢。

编辑:

这是服务器类: http://pastebin.com/yvZmFQvA

和客户端类(相当于例子中的tcp_connection类): http://pastebin.com/LDhr2nZz

最佳答案

这可能是因为您在断开连接时没有正确关闭套接字。由于无法处理的异常(例如信号 9)可能会导致断开连接,因此即使进程没有正常终止,您也需要一个解决方案来工作...

我相信这可以解决它:

Socket options SO_REUSEADDR and SO_REUSEPORT, how do they differ? Do they mean the same across all major operating systems?

关于c++ - Asio 中新连接出现 "Already Open"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29870776/

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