c++ - 从 Qt 5.7 切换到 Qt 5.8 - "the proxy type is invalid for this operation"

标签 c++ qt proxy qtcpsocket qtcpserver

我正在尝试使用 Qt 5.8 重新编译一个在 Qt 5.7 上运行良好的网络应用程序。但是,使用 Qt 5.8,服务器无法listen():

int myPort = 52000; //some accessible port
QTcpServer* server = new QTcpServer();
if(!server->listen(QHostAddress::Any, myPort))
{
    qDebug() << server.errorString();
}

返回的错误是:

The proxy type is invalid for this operation

我确实在受代理保护的公司网络上运行该应用程序,但是在以前的 Qt 版本中,从来不需要进行任何类型的设置来解决这个问题。我以前从未见过 listen() 命令失败。

有什么想法在 Qt 5.8 中有什么变化或如何解决这个问题吗?

编辑:

当整个网络被代理时,本地域上的通信不需要代理,NO_PROXY 环境变量被设置为避免代理本地连接。

最佳答案

在 Qt 5.8 中,默认使用系统代理设置,但似乎不遵守 NO_PROXY 设置。

在创建 QTcpServer 实例之前设置 QNetworkProxyFactory::useSystemConfiguration(false); 修复了错误(基本上通过恢复 Qt 5.7 默认值)。

关于c++ - 从 Qt 5.7 切换到 Qt 5.8 - "the proxy type is invalid for this operation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42121008/

相关文章:

c++ - Qt:如何调整图像大小并保持其比例?

python - 无法在 urllib.request 中使用 https 代理

proxy - 带有多个代理的 Ember CLI

c++ - 无法为 Qt 的 waitForConnected 设置超时

c# - 将 Polly HTTP 请求转换为 F#

c++ - 关于碰撞检测系统中类结构的建议

c++ - 封装在组合类 C++ 中

c++ 事件窗口句柄与基于 MFC 对话框的应用程序的 m_hwnd 不匹配

地形上的 C++ DirectX11 纹理无法正确渲染

c++ - 派生类中的模板有问题