QT的QAbstractSocket的使用

QAbstractSocket是QTcpSocket和QUdpSocket的基类,提供了一种统一的接口来处理TCP和UDP连接。它通过connectToHost()方法模拟UDP连接,并在不同连接状态下发射相应的信号。QAbstractSocket的状态包括UnconnectedState、HostLookupState、ConnectingState、ConnectedState等,状态变化时会发射stateChanged()信号。数据读写通过read和write函数完成,错误通过error()信号通知。当数据可用时,会触发readyRead()信号,可调用bytesAvailable()获取可读数据量。关闭连接使用disconnectFromHost(),最终进入ClosedState并发送disconnected()信号。
摘要由CSDN通过智能技术生成

QAbstractSocket类提供了整个socket的类型,是QTcpSocket和QUdpSocket的基类
这个类竟可能的联合了TCP和UDP,尽管UDP是不可靠的连接,但是connectToHost()为UDP建立了一个假的连接,使其步骤尽量与TCP协议相似。在本质上QAbstractSocket通过调用connectToHost()记住了地址和端口,而QAbstratSocket中的成员函数 read和write将会使用保存的这个值
无论什么时候QAbstractSocket都有一个状态,我们可以通过调用成员函数state来返回当前状态,初始状态为UnconnectedState(未连接状态),当程序调用connectToHost之后,其状态变为HostLookupState,
如果主机被找到,QAbstaractSocket进入connectingState状态并且发射HostFound()信号,当连接被建立的时候QAbstractSocket 进入了connectedState状态 并且发射connected()信号,如果再这些阶段出现了错误,QAbstractSocket将会发射error()信号,无论在什么时候,如果状态改变了,都会发射stateChanged(),如果套接字准备好了读写数据,isValid()将会返回true,

信号
无论什么时候QAbstractSocket的状态改变都会发出stateChanged()信号,错误发出error()信号。

读写数据
向套接字里读写数据通过调用 read或者是write函数 ,当数据被写进套接字后会发射bytesWritten()信号。需要注意的是,qt没有限制写缓冲区的大小,因此我们可以监听这个信号,以

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值