作者:小成Charles
原創作品
轉載請標注原創文章地址:https://blog.csdn.net/weixin_42999453/article/details/110140831
引言
最近兩天一直在研究網路通信的相關編程,以前一直局限于在局域網的通信測驗,因為很少做這一方面的開發就買了個服務器研究了很久,由于自身的計網基礎比較差,所以也踩了不少的坑!這里開發用騰訊云的Linux centos 7 系統做案列
這是程式運行截圖
程式原始碼下載地址:
一、安裝Qt準備好linux系統和linuxdeployqt
這一點很重要,linux系統可以是centos7,也可以是uanbntu,主要是將qt寫好的代碼編譯運行然后打包成linux可執行檔案,這樣就可以放在服務里運行了,這里我們可以用圖形界面演示,更加的直觀一點,關于如何安裝qt 可以參考此文章《centos7 安裝QT5.12》
如果要打包可執行程式最好的方法就是用linuxdeployqt,如何使用打包參考此文章《使用linuxdeployqt在linux下進行Qt打包發布(超詳細)》
安裝注意以下幾點:
- 選擇
linux系統不要過于的新,也不要過于的舊 - 高版本的
Linux配高版本的Qt軟體,低版本同理 - 第一次配置可能會缺少亂七八糟的庫,缺啥就下載啥就好了
linuxdeployqt在最新版本的linux上無法通過編譯,所以千萬不要安裝最新的linux系統,LTS長期支持版本就好了- 如果真的因為版本太新無法運行
linuxdeployqt的話可以下載原始碼,更改main.cpp代碼,camke生成程式,具體自行百度
二、配置服務器運行測驗程式
可以去阿里云/騰訊云購買,這兩家我都買過,不論是買輕量級應用服務器還是ESC云服務器都可以,前者適合搭建個人網站,一鍵搭建很方便,后者就是純粹的liunx系統,光禿禿的,可以自由發揮,當然初學者的話想鍛煉我推薦第二種ESC云服務器,更加靈活一點!這里以騰訊云的ESC服務器為例,一些初始化配置自由發揮啦!
這里連接服務器我用了xshell這個軟體,由于我測驗通信的服務器是帶GUI圖形化界面的,所以服務器必須先下載好界面庫,具體安裝參考此文章《centos7安裝圖形化界面圖文詳解》
之后就是把打包好的可執行包上傳到服務器上,這里我使用的是xftp這個軟體,然后運行,記得第一次運行程式之前先給程式權限打開chmod 777,大家應該都懂,
這里運行的是圖形界面的程式,所以用到了xmanager這個程式去調出來界面,然后就OK啦
總結:這里用到的三個軟體就是xshell,xftp,xmanager全家桶
三、關于公網ip地址監聽問題
我一開始監聽的地址就直接是公網ip的地址,然后就導致一直午飯監聽,程式報錯為“The address is not avalible.”,我就很奇怪,然后問了騰訊云的客服,給我的解釋就是服務器內部不支持監聽公網地址,如果需要實作監聽公網地址需要開通eip直通,具體可以看一下文章《ip和EIP的區別》,但是轉成eip資費太貴了,總之就是普通的公網ip沒有映射到你的主機上,而EIP可以直接映射到你的主機上,在程式里面你能監聽的是主機層次上有的ip地址,所以你沒辦法去監聽普通的公網IP,那我們怎么實作監聽呢?
后來我發現騰訊云的網卡設定上默認的把公網ip得知和內網ip的地址系結了,那么就說明我們直接監聽內網IP地址不就好了嗎!

果不其然,監聽成功!可以連接通訊了!!!!!
總結:直接監聽內網Ip地址即可,因為購買的服務器默認公網系結的是內網ip 地址
注意:
- 如果還是無法連接,那十有八九是防火墻的埠沒打開,騰訊云服務器可以安全組里面編輯出站入站的規則,開放你要開放的埠,地址就填內網的地址,
- 這里用的是帶圖形界面的做測驗,那真正的專案長期運行服務器當然不要帶圖形界面啦!
- 這是一個踩坑日記,后續有別的還會補,希望能幫到像我一樣的新手玩家!
程式原始碼下載地址:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227829.html
標籤:其他
上一篇:這是什么神仙資料啊!騰訊T4-1架構師告訴你啃爛這套“核心知識”+“高級面試”,,輕松年薪50W
下一篇:BATJ面試官筆記,SpringBoot,JVM,多執行緒&并發,演算法,MyBatis、MQ、微服務等 (帶完整目錄)免費分享
