Qt 简单Tcp通信 客户端连接云服务器(腾讯云、阿里云)问题记录 以及远程控制树莓派问题记录、树莓派与云服务器的内网穿透问题记录

(远程控制树莓派在文底)

套接字

客户端:套接字对象

服务端:套接字对象、服务器对象

服务端消息收发过程为监听一个端口,所以租赁的公网服务器要加一个站规则:例:自定义端口6060

服务端一次只能接受一个套接字连接,当服务端收到来自客户端A的消息,如果需要转发到客户端B,需要存客户端B的套接字缓存,并断开与客户端A的连接。例:多客户端与服务端连接,最好给客户端设置一个id标志,方便遍历查找

客户端连接:先查看服务器里的公网与私网ip(其中有细腻),在客户端里连接正确的公网ip和《没有被占用》的端口号(比如ssh占用了6000的端口号,你就不能使用端口6000了!)

在服务器启动服务端 ,软件打包,自启动

组协议:自定义协议,收发时转为字节数据包(如Qt::QByteArray)

解协议:解析字节数据包

推荐软件:MobaXterm

为什么推荐?:配置云服务器时,加上XServer(X11),具体叫什么名字我不清楚了,可以远程查看界面(例:在我ssh连接服务器后,输入qtcreator,可以弹出qtceator界面,而且不卡!)

推荐软件:Putty

也是一款远程连接软件

推荐软件:VNC

桌面远程控制软件,我所推荐的以上三款软件均是为了达到远程控制桌面的目的

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: QtQTcpSocket类是Qt网络模块中的一个类,用于实现TCP网络通信。而内网穿透是一种技术,允许在两个不同的局域网之间建立直接的网络连接。 在Qt中,要实现内网穿透,可以使用QTcpServer和QTcpSocket配合使用。首先在服务器使用QTcpServer监听指定的端口,等待客户端连接。然后在客户端中创建QTcpSocket对象,指定服务器IP地址和端口号,通过connect函数与服务器建立连接。 为了实现内网穿透,通常需要借助第三方的工具或服务,如FRP、ngrok等。这些工具通过在公网上运行一个服务器,将公网IP和端口映射到内网中的指定IP和端口,从而实现内网穿透。在Qt应用程序中,可以通过配置这些工具来实现内网穿透。 具体操作步骤如下: 1. 在服务器使用QTcpServer创建一个监听对象,并指定监听的IP地址和端口号。 2. 在客户端中创建一个QTcpSocket对象,并通过connect函数连接服务器的地址和端口号。 3. 在客户端中,通过connect信号和槽机制,监听连接成功和数据接收的信号,并在接收到数据时进行处理。 4. 在服务器端,通过QTcpServer的信号和槽机制,监听新连接的信号,并在接收到新连接时创建一个新的QTcpSocket对象,并将其加入到连接列表中。 5. 通过配置内网穿透工具,将公网IP和端口映射到服务器的局域网IP和端口上。 6. 在远程机器上,通过指定公网IP和端口号来连接服务器,实现内网穿透。 总结: QtQTcpSocket类可以配合其他技术或工具实现内网穿透,通过监听和连接的方式,实现远程机器与内网服务器通信。具体实现还需要借助第三方的工具或服务,如FRP、ngrok等来完成端口映射和数据传输。 ### 回答2: QT是一种跨平台的C++开发工具,而QTcpSocket是QT网络模块中的一个类,用于在网络中进行TCP通信内网穿透是一种将内部网络中的服务暴露给外部网络的技术。 在QT中实现内网穿透主要需要借助一些第三方库或服务,常用的有ngrok、frp等。这些工具可以将内部网络中的服务映射到外部网络上,使得可以通过外部网络访问到内部服务。 在使用QT开发中,可以通过QTcpSocket来实现与内网穿透工具之间的通信。首先,我们需要先启动内网穿透工具,将内部服务映射到外网,并获得外部访问地址。然后,在QT程序中使用QTcpSocket来连接外部访问地址。 具体实现步骤如下: 1. 下载并安装一个内网穿透工具,如ngrok。 2. 在终端中运行ngrok启动命令,并指定内部服务的端口号,如"ngrok http 8080"。 3. ngrok会生成一个外部访问地址,如"http://xxxx.ngrok.io"。 4. 在QT程序中创建一个QTcpSocket对象,使用其connectToHost方法连接到外部访问地址对应的IP地址和端口号。 5. 通过QTcpSocket对象进行数据通信,如发送和接收数据。 需要注意的是,由于内网穿透使用的是中间服务器进行数据转发,所以会引入一定的延迟和性能损耗。此外,在实际应用中,还需要考虑网络安全性等因素。 总之,通过QTcpSocket和内网穿透工具的配合,可以实现在QT中进行内网穿透,将内部服务暴露给外部网络进行访问。希望以上回答能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值