2017-02-08 2 views
2

Я пытаюсь перекомпилировать сетевое приложение, которое отлично работает с Qt 5.7 с использованием Qt 5.8. Однако, используя Qt 5.8, сервер не в состоянии listen():Переключение с Qt 5.7 на Qt 5.8 - «прокси-тип недопустим для этой операции»

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

и возвращается ошибка:

Тип прокси недопустим для этой операции

я делаю запустить приложение в корпоративной сети, которая защищена прокси-сервером, однако в предыдущих версиях Qt никогда не приходилось делать какие-либо настройки для учета этого. Я никогда не видел, чтобы команда listen() потерпела неудачу.

Любые идеи, которые изменились в Qt 5.8 или как это объяснить?

EDIT:

в то время как общая сеть проксируется, нет прокси не требуется для общения в локальной области, а переменная NO_PROXY окружения установлена, чтобы избежать проксирование локальных соединений.

+1

'QNetworkProxyFactory :: usesSystemConfiguration' возвращает что-нибудь интересное? – peppe

+0

Вы можете увидеть изменения api здесь http://doc.qt.io/qt-5/sourcebreaks.html, но я не вижу ничего, что должно было бы это сделать! – PeCosta

+1

Похоже, что в настройке Qt по умолчанию, связанной с прокси-серверами, есть как минимум 2 изменения: http://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.8.0 – alexisdm

ответ

1

В Qt 5.8 параметры прокси-сервера используются по умолчанию, но, похоже, не соответствуют настройкам NO_PROXY.

Установка QNetworkProxyFactory::useSystemConfiguration(false); до создания экземпляра QTcpServer исправила ошибку (по существу, вернув Qt 5.7 по умолчанию).

Смежные вопросы