Man ...认为在Boost中使用ASIO会变得简单直观。 :PBoost ASIO async_accept编译失败
我开始得到它,但我有一些麻烦。这是一个片段。 我在async_accept行有几个编译器错误。我究竟做错了什么? :P
我根据我的代码关闭此页: http://www.boost.org/doc/libs/1_43_0/doc/html/boost_asio/tutorial/tutdaytime3/src.html
错误:
错误1个错误C2780:“无效 的boost ::支持ASIO :: basic_socket_acceptor :: async_accept(提高:: ASIO :: basic_socket &,提高:: ASIO ::知识产权:: basic_endpoint &,AcceptHandler)”:预计3个 参数 - 2 提供的E:\ schoolcode \高级 项目\ cplusplusport \ cplusplusport \ alexsocket.cpp 36
错误2错误C2784: '无效 的boost ::支持ASIO :: basic_socket_acceptor :: async_accept(提高:: ASIO :: basic_socket &,AcceptHandler)':无法推断 模板参数 'boost :: asio :: basic_socket &'from'boost :: asio :: ip :: tcp :: socket *'e:\ schoolcode \ senior project \ cplusplusport \ cplusplusport \ alexsocket.cpp 36
bool TestSocket::StartListening(int port)
{
bool didStart = false;
if (!this->listening)
{
//try to listen
acceptor = new tcp::acceptor(this->myService, tcp::endpoint(tcp::v4(), port));
didStart = true; //probably change?
tcp::socket* tempNewSocket = new tcp::socket(this->myService);
acceptor->async_accept(tempNewSocket, boost::bind(&TestSocket::NewConnection, this, tempNewSocket, boost::asio::placeholders::error));
}
else //already started!
return false;
this->listening = didStart;
return didStart;
}
void TestSocket::NewConnection(tcp::socket* s, const boost::system::error_code& error)
{
}
向我们提供更多信息。你用'this'绑定到'AlexSocket :: NewConnection'作为第一个参数 - 但据我所知,这个'不是'AlexSocket' - 是吗? NewConnection方法是虚拟的吗? – Thanatos 2010-06-09 04:09:36
呃。我正试图摆脱我编写学习代码时添加到所有类中的愚蠢的“MyName”前缀。 :P – bobber205 2010-06-09 04:15:09
该方法*不*虚拟。 – bobber205 2010-06-09 04:15:57