Qt Udp聊天室

本文作者通过实践《Qt学习之路》系列文章,创建了一个Qt UDP聊天室。介绍了UDP与TCP的区别,UDP的无连接特性使得其速度更快但容错性差,而TCP则提供更高的容错性和安全性。在讲解过程中,解释了两台机器如何进行通信的基本原理,从应用层到物理层的数据传输过程。接着,简述了Qt中实现UDP聊天室的发送端部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

    QUdpSocket *udpSocket = new QUdp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值