德国世界杯_2012年世界杯 - fyycdq.com

德国世界杯_2012年世界杯 - fyycdq.com

Asio终端套接字功能:取消、关闭、关闭、释放

关闭和清理套接字的正确方法是什么?

我将io_service运行在一个辅助线程中,我需要从主线程关闭连接:

代码语言:javascript运行复制void closeConnection()

{

ioc.post([&socket]() {

// Which ones do I have to call?

// In what order?

// What do they do?

//socket.cancel();

//socket.shutdown(asio::ip::tcp::socket::shutdown_both);

//socket.close();

//socket.release();

});

secondaryThread.join();

}所有这些功能之间有什么区别?

我试过这个序列..。

代码语言:javascript运行复制socket.cancel();

socket.close();

socket.release();并且似乎没有错误地关闭连接,但是花费了太多的时间(大约5-10秒),所以我想我做错了一些事情。