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服务端编写完成
最后整体完成,效果还不错。有哪些函数不懂,进入帮助文档里面,有详细的介绍。
Qt 的 tcp服务端讲解相关推荐
- Qt 多线程TCP服务端一键关闭所有客户端
Qt 多线程TCP服务端一键关闭所有客户端 任务描述: 实现多线程TCP服务端一键关闭所有客户端的连接. 解决过程: 1.Qt的服务端提供了close的功能,但是只用来不响应新接入的客户端. 手册中是 ...
- Qt中TCP服务端编程
文章目录 1 Qt中的TCP服务端编程 1.1 TCP服务端编程介绍 1.2 Qt中的TCP服务端编程 1 Qt中的TCP服务端编程 1.1 TCP服务端编程介绍 网络中的服务端: 服务端是为客户端服 ...
- Qt多线程 TCP 服务端
Qt实现 多线程 TCP 服务端 因为项目中要用到TCP客户端的并发处理,所以TCP服务端用多线程去实现是必要的.于是花了一大早上的时间写了一各Demo 如图: 主要关键代码: 关于线程的处理.关于线 ...
- QT 之 TCP 服务端 连接 多客户端 处理学习
自学QT中, 在此记录一下TCP多链接的方法. 跟着 "Qt Creator快速入门" 学了一段时间了,刚接触网络编程, 例子中仅仅简单的 用 客户端 连接了一下 服务端, 然后 ...
- Qt:Qt实现Winsock网络编程—TCP服务端和客户端通信(多线程)
Qt实现Winsock网络编程-TCP服务端和客户端通信(多线程) 前言 感觉Winsock网络编程的api其实和Linux下网络编程的api非常像,其实和其他编程语言的网络编程都差不太多.博主用Qt ...
- TCP服务端程序开发
TCP服务端程序开发 1. 开发 TCP 服务端程序开发步骤回顾 创建服务端端套接字对象 绑定端口号 设置监听 等待接受客户端的连接请求 接收数据 发送数据 关闭套接字 2. socket 类的介绍 ...
- pythontcp服务器如何关闭阻塞_python实现单线程多任务非阻塞TCP服务端
本文实例为大家分享了python实现单线程多任务非阻塞TCP服务端的具体代码,供大家参考,具体内容如下 # coding:utf-8 from socket import * # 1.创建服务器soc ...
- Python基于socket实现的多任务版TCP服务端
''' 基于socket实现的多任务版TCP服务端 ''' import socket import threadingdef client_task(client_socket,ip_port):p ...
- Python基于socket实现的TCP服务端
''' 基于socket实现的TCP服务端 '''import socket # 建立socket对象 server_socket=socket.socket(socket.AF_INET,socke ...
最新文章
- CSS(二)属性--文本设置
- Jquery string 和 json相互转换的方法
- 089_学习过的html标签
- html div剩下高度设置,使div填充剩余屏幕空间的高度
- 怎么new一个指针_【译】Rust与智能指针
- Java对数组的操作(二)——集合与数组的切换
- RIP协议及距离向量算法(详解)
- mysql 10天以前_MySQL前10天7天前
- 2月20日 梯度下降、三种方式、三种超参数学习率冲量衰减因子、应用举例
- Sakai3白皮书(中文版)
- 机器学习之主成分分析PCA数据降维
- 简单工厂模式在Logback源码以及JDK源码中的应用
- 用计算机排列姓氏顺序,电脑excel文档中如何根据姓氏笔画来排序
- ps快捷键 拿走不谢*小Lemon送你们的
- 轻量快速的国产导航软件Flare
- Maven系列(四):Maven内置属性,pom属性
- Java学习笔记-@RunWith(SpringRunner.class)
- win10monkey安装教程_详解win10下pytorch-gpu安装以及CUDA详细安装过程
- 微信小程序云端增强 SDK接入
- 如何设置XP操作系统自动登录-原动力-搜狐博客