当前位置: 七九推 > 网络运营>服务器>Linux > 利用Qt/C++在腾讯云/阿里云服务器搭建TCP/IP协议实现网络通信以及Qt在linux下的安装和程序打包踩坑(详解)

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

2022年06月02日 Linux 我要评论
作者:小成Charles 原创作品 转载请标注原创文章地址:https://blog.csdn.net/weixin_42999453/article/details/11

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

引言

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

这是程序运行截图在这里插入图片描述
程序源码下载地址: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地址不就好了吗!

在这里插入图片描述
果不其然,监听成功!可以连接通讯了!!!!!
总结:直接监听内网Ip地址即可,因为购买的服务器默认公网绑定的是内网ip 地址

注意:

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

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

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

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

  • 
    linux命令之tar 解压 压缩

    linux命令之tar 解压 压缩

    tartar(全称:tape archive )命令用于备份文件。tar 是用来创建或者还原备份文件的工具程序,它可以加入,解开备份文件内的文件。tar lin... [阅读全文]
  • 
    CCF推荐期刊会议

    CCF推荐期刊会议

    打开 中国计算机学会(ccf) 官网 https://www.ccf.org.cn/主界面下方找到ccf推荐会议/期刊目录主要有中国计算机学会推荐国际学术会议和... [阅读全文]
  • Linux常用命令与命令缩写整理

    Linux常用命令与命令缩写整理

    linux 常用命令pwd: print work directory 打印当前目录 显示出当前工作目录的绝对路径ps: process status(进程状态... [阅读全文]
  • Linux用户和用户组管理方法介绍

    Linux用户和用户组管理方法介绍

    linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面... [阅读全文]
  • 
    Linux mkdir  如何递归创建目录?

    Linux mkdir 如何递归创建目录?

    mkdir 如何递归创建目录?mkdir –vp 目录1/目录2/目录3详细介绍:linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户... [阅读全文]
  • 
    gcc -I -L -l区别

    gcc -I -L -l区别

    我们用gcc编译程序时,可能会用到“-i”(大写i),“-l”(大写l),“-l”(小写l)等参数,下面做个记录:例子1:gcc -o example1 exa... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2022  七九推 保留所有权利. 粤ICP备17035492号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com