欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

利用Qt/C++在腾讯云/阿里云服务器搭建TCP/IP协议实现网络通信以及Qt在linux下的安装和程序打包踩坑(详解)

程序员文章站 2022-06-26 14:12:34
引言最近两天一直在研究网络通信的相关编程,以前一直局限于在局域网的通信测试,因为很少做这一方面的开发就买了个服务器研究了很久,由于自身的计网基础比较差,所以也踩了不少的坑!这里开发用腾讯云的Linux centos 7 系统做案列这是程序运行截图程序源码下载地址:一、安装Qt准备好linux系统和linuxdeployqt这一点很重要,linux系统可以是centos7,也可以是uanbntu,主要是将qt写好的代码编译运行然后打包成linux可执行文件,这样就可以放在服务里运行了。这里我们可以用...

作者:小成Charles
原创作品
转载请标注原创文章地址:https://blog.csdn.net/weixin_42999453/article/details/110140831

引言

最近两天一直在研究网络通信的相关编程,以前一直局限于在局域网的通信测试,因为很少做这一方面的开发就买了个服务器研究了很久,由于自身的计网基础比较差,所以也踩了不少的坑!这里开发用腾讯云的Linux centos 7 系统做案列

这是程序运行截图利用Qt/C++在腾讯云/阿里云服务器搭建TCP/IP协议实现网络通信以及Qt在linux下的安装和程序打包踩坑(详解)
程序源码下载地址:https://download.csdn.net/download/weixin_42999453/13189726

一、安装Qt准备好linux系统和linuxdeployqt

这一点很重要,linux系统可以是centos7,也可以是uanbntu,主要是将qt写好的代码编译运行然后打包成linux可执行文件,这样就可以放在服务里运行了。这里我们可以用图形界面演示,更加的直观一点,关于如何安装qt 可以参考此文章《centos7 安装QT5.12》
如果要打包可执行程序最好的方法就是用linuxdeployqt,如何使用打包参考此文章《使用linuxdeployqt在linux下进行Qt打包发布(超详细)》

安装注意以下几点:

  1. 选择linux系统不要过于的新,也不要过于的旧
  2. 高版本的Linux配高版本的Qt软件,低版本同理
  3. 第一次配置可能会缺少乱七八糟的库,缺啥就下载啥就好了
  4. linuxdeployqt在最新版本的linux上无法通过编译,所以千万不要安装最新的linux系统,LTS长期支持版本就好了
  5. 如果真的因为版本太新无法运行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地址不就好了吗!

利用Qt/C++在腾讯云/阿里云服务器搭建TCP/IP协议实现网络通信以及Qt在linux下的安装和程序打包踩坑(详解)
果不其然,监听成功!可以连接通讯了!!!!!
总结:直接监听内网Ip地址即可,因为购买的服务器默认公网绑定的是内网ip 地址

注意:

  1. 如果还是无法连接,那十有八九是防火墙的端口没打开,腾讯云服务器可以安全组里面编辑出站入站的规则,开放你要开放的端口,地址就填内网的地址。
  2. 这里用的是带图形界面的做测试,那真正的项目长期运行服务器当然不要带图形界面啦!
  3. 这是一个踩坑日记,后续有别的还会补,希望能帮到像我一样的新手玩家!

程序源码下载地址:https://download.csdn.net/download/weixin_42999453/13189726

本文地址:https://blog.csdn.net/weixin_42999453/article/details/110140831