提升::ASIO 接受套接字错误已打开
boost::asio accepting socket error already open
不确定是什么导致了此错误Already Open
#include "AsyncServer.h"
AsyncServer::AsyncServer(boost::asio::io_service& io_service, std::string ip, unsigned short port)
: acceptor(io_service, tcp::endpoint(boost::asio::ip::address_v4::from_string(ip), port))
{
BeginAccept();
}
AsyncServer::~AsyncServer()
{
}
void AsyncServer::BeginAccept(){
tcp::socket temp = tcp::socket(acceptor.get_io_service());
acceptor.async_accept(temp, boost::bind(&AsyncServer::EndAccept, this, boost::asio::placeholders::error));
}
void AsyncServer::EndAccept(const boost::system::error_code& error){
if (!error)
{
//continue with connection
std::cout << "connected" << std::endl;
}
else
{
std::cout << error.message() <<std::endl;
}
BeginAccept();
}
我想做的是将套接字和错误传递给EndAccept
但它坏了,错误Already Open
,我不知道这里出了什么问题!
temp
是一个本地对象,它会在退出BeginAccept
立即被销毁。这意味着async_accept
使用未定义的行为。
temp
成为成员(给它起更有意义的名字也是一个好主意)。
相关文章:
- 瓦尔格林德错误来自 boost::asio
- 在网络套接字计时器滴答后增加asio短读错误
- 错误: C1083: 无法打开包含文件:"boost/asio.hpp": 没有此类文件或目录
- 使用 Boost ASIO 和 SSL 时出现"Wrong Version Number"错误 (C++)
- 尝试关闭 SSL 套接字时使用升压 asio 1.64 的分段错误 (SIGSEGV)
- 提升 asio 回声服务器示例中的黑客或错误?
- C++ Boost::asio x64 async_send失败,出现错误 10014 (WSAEFAULT)
- boost::asio async_accept总是发生错误,error_code.value() 是 22,这意味着参
- 编译Boost ASIO示例时出现错误
- 加速 ASIO 系统错误 995:I/O 操作已中止
- 尝试重新连接到服务器时获取错误提升 asio 连接超时
- 提升 ASIO 绑定:错误的文件描述符
- boost :: Asio连接错误的界面
- 在thread.hpp上boost asio udp 螺纹= get_id()错误
- 将 Boost Asio 与 ZeroMQ 集成,文件描述符错误?
- 在CLion中链接Boost.Asio时Static_initialization_and_distruction错误
- 为什么这C++ASIO,当执行HTTP / SSL请求时,BEAST服务器会进入错误状态
- 编译器错误boost :: asio ::占位符:: boost v1.69的错误
- boost asio错误类别为空
- Boost Asio udp 解析器返回错误的端点迭代器