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. MySQL探秘(七):InnoDB行锁算法
  2. Http Tunnel 小记
  3. Cocos2d-X中的ZORDER和Tag
  4. 上海交大张拳石:神经网络的变量交互可解释性研究
  5. 卷积神经网络CNN(3)—— FCN(Fully Convolutional Networks)要点解释
  6. 所有赚不到钱的人都是干了自己不愿意或者自己很讨厌的事
  7. python写个验证码
  8. 智能优化算法:非洲秃鹫优化算法-附代码
  9. 未格式化的硬盘识别失败
  10. fcitx5 使用搜狗皮肤
  11. 服务器固态硬盘接口区别,s s d固态硬盘和服务器配件硬盘的区别
  12. 名片 - 名片设计的比例
  13. 定时器(setTimeout()和setInterval())的清除问题
  14. axios库读不到cookie_axios客户端无法存储cookie
  15. 基于java的坦克大战游戏-计算机毕业设计
  16. linux挂载cifs磁盘_CentOS7.4_1708挂载CIFS报错
  17. 开/闭环控制的直流调速系统
  18. 《全球NFT数字版权与资产峰会》圆满闭幕——开启NFT应用新未来
  19. 【围观】今晚8点,OK Jumpstart三期ETM项目专场来啦~
  20. (13)打鸡儿教你Vue.js

热门文章

  1. python编写股票公式_一个用Python编写的股票数据(沪深)爬虫和选股策略测试框架...
  2. Android 9 谷歌全面屏,跟虚拟导航栏说再见,安卓9.0将使用全面屏手势
  3. CSS基础: 单行和多行文本溢出显示省略号
  4. lol3.17服务器维护,LOL3.17全区维护长达16个小时 官方补偿3胜经验卡
  5. 阻止PotPlayer播放器自动更新
  6. 计算机硬盘丢失了怎么找回,电脑硬盘空间丢失 硬盘空间丢失怎么办 - 云骑士一键重装系统...
  7. 〖金融帝国实验室〗(Capitalism Lab)关于“确认开发房地产DLC”的提示(官方权威解答)
  8. 常见的表单元素有哪些?各有什么属性?
  9. 【3DMax】细节2【修改物体坐标中心】
  10. 【Gazebo/ROS】阿克曼小车仿真环境设置中的心得体会