c++ - 使用 Visual Studio boost asio TCP IP asio 类编译错误。错误 : C2228: left of '.close' must have class/struct/union

标签 c++ class boost tcp boost-asio

我正在尝试按照本页中提供的步骤进行操作

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/

相关文章:

c++ - 使用GCC boost 线程编译器错误

c++ - 使用 boost.signals2 中继信号

c++ - ui上的qt c++神秘的不完整类类型错误

c++ - 仅由非常大的随机输入引起的分段故障核心在出队前转储到 pqueue 堆中

c++ - 使用 TriangleStrip 渲染单个三角形会渲染一个矩形

C++ 类函数如何存储私有(private)成员的值并将其写入数组?

c++ - 有没有办法声明一个类,然后在 C++ 的函数中初始化它?

boost - 无法为 cmake 指定 BOOST_ROOT

c++ - 我无法构建 mlpack?

c# - 将字符串分配给指向字符的指针