boost :: asio无法连接套接字

时间:2011-04-05 13:54:04

标签: c++ http boost boost-asio

我最近构建了一些com对象嵌入到Internet Explorer中。在那里我使用boost-asio来发出http请求。通常这个功能非常好。但是在客户端环境中socket.connect();无法连接。关键段落如下:

boost::asio::io_service ioService;

tcp::resolver resolver(ioService);
tcp::resolver::query query(serverAdress, "http");
tcp::resolver::iterator endpointIterator = resolver.resolve(query);
tcp::resolver::iterator end;

tcp::socket socket(ioService);
boost::system::error_code error = boost::asio::error::host_not_found;

while (error && endpointIterator != end)
{
    socket.close();
    socket.connect(*endpointIterator++, error);
}

现在在该代码块之后,错误变量保存消息:

  

连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而建立连接失败。

在其他几台PC上执行相同的代码(应用程序)非常完美!现在差异是(虽然不知道哪些是至关重要的):

  • 目标操作系统是Windows XP SP3 x32(我们的都是Windows 7 x64)。应用程序本身是32位。
  • 目标计算机具有Internet设置中定义的VPN或拨入连接。现在我可以想象存在问题的根源。
  • 我不知道某个地方是否有代理,但这也可能导致问题。

所以,我的问题是:这些差异中的任何一个都会导致这类问题吗?如果是这样的话,我能做些什么吗?

修改

最有可能的问题是公司网络的路由器/线墙造成的。使用目标计算机连接到访客网络时,一切正常。仅在公司网络中,连接尝试才会发出前面提到的错误消息。

0 个答案:

没有答案