Qt 的 tcp服务端讲解

TCP

TCP : (Tramsmission Control Protocl)传输控制协议,一种面向连接的,可靠的,基于字节流的传输层通信协议。

本文目标

实现一个简单的服务器,可以接受客户端的信息

使用类库

QTcpServer : 实现服务端的端口监听,可以提供一种服务(也可以自己去编写)。
QTcpSocket : 实现套接字类,有消息的封装,可读取和写入。

接下来介绍两个关于windows的命令行知识

1. netstat -ano

这个命令是针对于windows系统下查看所有的端口占用情况。

  • 首先,cmd 打开命令行窗口,输入netstat -ano,会出现关于本机端口一些连接情况,这快我们主要讲解一下关于TCP的知识
    -在这里插入图片描述
    针对于这块本地地址 0.0.0.0:135

0.0.0.0是表示可以代表任何IP进行访问。
135则表示的是开启的端口

在这里插入图片描述
针对于这块 127.0.0.1:1001

127.0.0.1表示的是自己的网卡地址
1001则表示的是开启的端口号

当然这块如果检查自己电脑网卡是否正常可以 通过 ping 127.0.0.1 来进行检查

2.telnet

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器

今天我们通过使用 telnet 127.0.0.1 端口号 来测试我们编写的服务端
前提是必须要在windows ,控制面板,程序那块把电脑的telnet client安装上

切入今天的正题,用qt编写一个tcp服务端

在这里插入图片描述
在这里插入图片描述
创建完成后,紧接着,在工程文件中引入network
在这里插入图片描述
第二步,加入类文件,server类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第三步:头文件需要更改server,应该继承 QTcpServer,并且在server的源文件也要更改,如下
在这里插入图片描述
在这里插入图片描述

重点来了

1、首先开启端口服务,使用QTcpServer的listen,开启指定的端口。
这块目的是:外人发过的消息可以被这个程序接收到,并且使用 netstat -ano进行检测。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、通过重写 incomingConnection( qintptr handle);
让新用户加入进来,这个方法是要引入QTcpSocket类,并且这个方法是虚函数,需要用户去重载

在这里插入图片描述
在这里插入图片描述
这块开始测试,因为小编先写好代码,这块就用原先写好的代码来进行演示
先cmd,使用telnet 127.0.0.1 8888 进行测试

在这里插入图片描述
在这里插入图片描述
3、要将当前对象的连接对象存入socket对象中
在这里插入图片描述
4、监听sock对象的readyread()消息来处理最后的消息。(这块我们要说的是一个函数可以同时继承他父类的方法)

在这里插入图片描述
在这里插入图片描述
5、读取消息,并且通过if语句排除无用字符
在这里插入图片描述

最后整体测试,整个简单的TCP服务端编写完成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后整体完成,效果还不错。有哪些函数不懂,进入帮助文档里面,有详细的介绍。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟道xn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值