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服务端讲解相关推荐

  1. Qt 多线程TCP服务端一键关闭所有客户端

    Qt 多线程TCP服务端一键关闭所有客户端 任务描述: 实现多线程TCP服务端一键关闭所有客户端的连接. 解决过程: 1.Qt的服务端提供了close的功能,但是只用来不响应新接入的客户端. 手册中是 ...

  2. Qt中TCP服务端编程

    文章目录 1 Qt中的TCP服务端编程 1.1 TCP服务端编程介绍 1.2 Qt中的TCP服务端编程 1 Qt中的TCP服务端编程 1.1 TCP服务端编程介绍 网络中的服务端: 服务端是为客户端服 ...

  3. Qt多线程 TCP 服务端

    Qt实现 多线程 TCP 服务端 因为项目中要用到TCP客户端的并发处理,所以TCP服务端用多线程去实现是必要的.于是花了一大早上的时间写了一各Demo 如图: 主要关键代码: 关于线程的处理.关于线 ...

  4. QT 之 TCP 服务端 连接 多客户端 处理学习

    自学QT中, 在此记录一下TCP多链接的方法. 跟着 "Qt Creator快速入门" 学了一段时间了,刚接触网络编程, 例子中仅仅简单的 用 客户端 连接了一下 服务端, 然后 ...

  5. Qt:Qt实现Winsock网络编程—TCP服务端和客户端通信(多线程)

    Qt实现Winsock网络编程-TCP服务端和客户端通信(多线程) 前言 感觉Winsock网络编程的api其实和Linux下网络编程的api非常像,其实和其他编程语言的网络编程都差不太多.博主用Qt ...

  6. TCP服务端程序开发

    TCP服务端程序开发 1. 开发 TCP 服务端程序开发步骤回顾 创建服务端端套接字对象 绑定端口号 设置监听 等待接受客户端的连接请求 接收数据 发送数据 关闭套接字 2. socket 类的介绍 ...

  7. pythontcp服务器如何关闭阻塞_python实现单线程多任务非阻塞TCP服务端

    本文实例为大家分享了python实现单线程多任务非阻塞TCP服务端的具体代码,供大家参考,具体内容如下 # coding:utf-8 from socket import * # 1.创建服务器soc ...

  8. Python基于socket实现的多任务版TCP服务端

    ''' 基于socket实现的多任务版TCP服务端 ''' import socket import threadingdef client_task(client_socket,ip_port):p ...

  9. Python基于socket实现的TCP服务端

    ''' 基于socket实现的TCP服务端 '''import socket # 建立socket对象 server_socket=socket.socket(socket.AF_INET,socke ...

最新文章

  1. CSS(二)属性--文本设置
  2. Jquery string 和 json相互转换的方法
  3. 089_学习过的html标签
  4. html div剩下高度设置,使div填充剩余屏幕空间的高度
  5. 怎么new一个指针_【译】Rust与智能指针
  6. Java对数组的操作(二)——集合与数组的切换
  7. RIP协议及距离向量算法(详解)
  8. mysql 10天以前_MySQL前10天7天前
  9. 2月20日 梯度下降、三种方式、三种超参数学习率冲量衰减因子、应用举例
  10. Sakai3白皮书(中文版)
  11. 机器学习之主成分分析PCA数据降维
  12. 简单工厂模式在Logback源码以及JDK源码中的应用
  13. 用计算机排列姓氏顺序,电脑excel文档中如何根据姓氏笔画来排序
  14. ps快捷键 拿走不谢*小Lemon送你们的
  15. 轻量快速的国产导航软件Flare
  16. Maven系列(四):Maven内置属性,pom属性
  17. Java学习笔记-@RunWith(SpringRunner.class)
  18. win10monkey安装教程_详解win10下pytorch-gpu安装以及CUDA详细安装过程
  19. 微信小程序云端增强 SDK接入
  20. 如何设置XP操作系统自动登录-原动力-搜狐博客

热门文章

  1. python中使用Com组件说明
  2. Python实现循环移位操作
  3. 噬血代码进不了游戏_《噬血代码》联机失败解决方法介绍
  4. 我放下怨恨与报复,只是因为我决定去爱我自己
  5. 骨传导耳机十大品牌排行榜,骨传导耳机评测,骨传导耳机选购指南
  6. 实习面试----苏州意能通一面面试
  7. 如何上传html验证文件大小,input上传文件,前端判断文件的大小及类型
  8. 使用 JAVA 队列把高并发转为批量串行降低后端并发压力
  9. 关闭计算机选项中没有休眠,win7系统电脑没有休眠功能的解决方法
  10. RegisterHotKey