0
我有一个我希望绑定到本地终端的TCP套接字。如何使用升压asio来区分未连接的终端上的繁忙终端
我有2个场景:
- 插座连接到本地端点这是不是在使用,而不是等待连接。
- 将套接字连接到上一次运行时使用/未正确关闭的本地端点。
我用它来初始化接受器,使用它的构造函数传递io_service和端点,但是当它试图连接到使用的端点时,接受器崩溃了。
acceptor_(io_service_, endpoint)
我做的下一件事是将构造函数更改为仅获取io_service(承诺套接字不会被打开)。
acceptor_(io_service_)
我看到asio有一个bind()函数,它将套接字与本地端点绑定。 函数bind()具有一个参数,该参数指示是否发生了错误,但对于上面的两种情形,它都会返回相同的错误。
boost::system::error_code ec;
acceptor_.bind(endpoint, ec);
if(ec)
{
// SOME ERROR NOTIFYING
// EDIT: error code returned is 10009
}
有没有一种方法可以连接到端点并为这类错误获取不同的错误?
你能说出返回的错误是什么吗?至于崩溃,你有没有尝试在调试器中运行它来捕捉崩溃? – 2012-07-18 08:01:05
我将它添加到代码中。关于崩溃的错误是10009. – 2012-07-18 08:03:48
- 调试器发现了它。但接受者在类构造函数初始化列表中初始化。 – 2012-07-18 08:07:51