之前看了《apue》,但是一直没做什么东西,很多概念性的东西了解之后不实践很容易忘掉。所以蹦出写一个聊天室的想法。当然Qt内部有关于Udp和Tcp相关类的封装,任何底层的函数都可以通过直接调用类里的方法完成。我也是参照了《Qt学习之路》这一系列文章做下去的。
先看一下Udp和Tcp什么区别:
Udp是无连接,什么是无连接呢?就是说两台机器如果通信的话不需要事先经过一些约定(连接),可以直接传数据;而有连接的就是说要通信的话必须先连接起来才能传输数据。相比来说:Udp速度快,容错差,安全性低;Tdp速度慢(三次握手),容错高(可以检错重发),安全性高。
不同机器到底是怎么通信的?
这个问题一直是我读网络编程书之前的困惑,网上大部分推荐看《计算机网络》,《Tcp/Ip协议》这类的书。但是那个学习成本太高(但并不意味着不值得看,相反非常值得看),但是对于入门来说,大致了解框架远比抠细节重要。下面我就大致说说两台机器到底如何通信的:
A和B两台机器上面都运行了程序NET,现在A打了一段字(也可能是其他类型的数据)到NET的输入框里,NET通过系统API将这些数据依次往硬件上传(中间依次经历了传输层,网络层,数据链路层),最后到物理层,这之间的层数具体干什么的你不用管,它们的工作其实就是在你的数据开头(或者结尾)加上一些额外信息,这样物理层就能通过这些额外信息知道将你的数据传到哪里去,传多少。等等。这样数据经过光纤,电缆传到B之后,B以相反的顺序依次通过上面说的层将数据送到B的NET
Qt Udp聊天室
最新推荐文章于 2024-07-26 15:12:20 发布
本文作者通过实践《Qt学习之路》系列文章,创建了一个Qt UDP聊天室。介绍了UDP与TCP的区别,UDP的无连接特性使得其速度更快但容错性差,而TCP则提供更高的容错性和安全性。在讲解过程中,解释了两台机器如何进行通信的基本原理,从应用层到物理层的数据传输过程。接着,简述了Qt中实现UDP聊天室的发送端部分。
摘要由CSDN通过智能技术生成