我正在尝试按照本页中提供的步骤进行操作
http://www.boost.org/doc/libs/1_46_0/doc/html/boost_asio/tutorial/tutdaytime1.html
但是,有时代码无法编译,并给出指定的错误。我无法理解这是一种什么样的冲突。似乎未正确创建对象 tcpsock。请检查我的代码:
io_service io_tcp;
tcp::resolver resolverObject(io_tcp);
tcp::resolver::query queryObject(argv[1], "daytime");
tcp::resolver::iterator endpoint_iterator = resolverObject.resolve(queryObject);
tcp::resolver::iterator end; //default constructor is end iterator
tcp::socket tcpsock(io_service);
boost::system::error_code socketError = boost::asio::error::host_not_found;
while (socketError && endpoint_iterator != end)
{
//Apparently, the object isn't created correctly
tcpsock.close(); //error happenes here
tcpsock.connect(*endpoint_iterator++, socketError); //error happenes here too
}
if (socketError)
throw boost::system::system_error(socketError);
感谢您的努力。
最佳答案
您正在使用 io_service
类型初始化 tcpsock
,而不是使用变量 io_tcp
。
关于c++ - 使用 Visual Studio boost asio TCP IP asio 类编译错误。错误 : C2228: left of '.close' must have class/struct/union,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14501874/