使用 QTcpServer ,使用 listen
函數監聽局域網地址 (192.168.97.217)的時候,發現返回的結果為 false,無法監聽,通過語句qDebug() << server->errorString();
打印出的錯誤字串為
The proxy type is invalid for this operatoin;
但是,當我修改綁定的地址語句為 QHostAddress::LocalHost
之后,可以監聽成功,現象如上所述。
經過研究,在 Qt 5.8 及以后,Qt 程序默認使用系統的代理設置會導致這個問題導致,只要關閉系統的代理設置就可以解決這個問題,關閉系統代理設置方法請訪問以下網頁
https://jingyan.baidu.com/article/0aa22375866c8988cc0d648c.html
關閉之后,通過 listen 函數就可以監聽 127.0.0.1 和 192.168.x.x 兩種地址了;如果不想修改系統代理設置,可以在QTcpServer 的構造函數中加入以下語句:
QNetworkProxyFactory::setUseSystemConfiguration(false); // 靜態函數
(加入該句話之后,無論是Server監聽還是Socket連接服務器,都變得異常快速,幾乎沒有等待延遲,不是很懂~)客戶端也可加上上面的語句。