Qt 5.8 QTcpServer 無法監聽局域網 ip 地址問題


  系統: Windows 7 Server Pack 1;Qt: Qt 5.8 for android 。

  在使用 QTcpServer 的時候,使用 listen 函數監聽局域網地址 (192.168.2.113)的時候,發現返回的結果

  為 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連接服務器,都變得異常快速,幾乎沒有等待延遲,不是很懂~)

  這樣也可以達到相同的效果,遇到了,記一下,希望對各位有用!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM