2013-01-24 42 views
2

我想按照这个网页提供使用Visual Studio增强asio TCP IP asio类编译错误。错误:C2228:左“.close”必须有类/结构/联合

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); 

谢谢你的努力。

回答

2

您在初始化tcpsock,其类型为io_service,而不是变量io_tcp

+1

多么愚蠢的错误!看到?现在2个小时被浪费了一个愚蠢的错误! 非常感谢。 –

+1

下面的示例中,当您重命名变量时可能会非常棘手;-) – TemplateRex

+1

同意!我会尽量更加小心。再次感谢 :) –

相关问题