QT网络通信-TCP、UDP通信

欢迎入群共同学习交流
时间记录:2024/1/17
pro文件添加模块network

一、TCP服务端

(1)创建TCP服务器对象QTcpServer
(2)为QTcpServer对象的newConnection信号绑定槽,用来监听TCP客户端的新连接,有新的客户端连接便会触发此信号
(3)使用nextPendingConnection方法获取连接的Tcp客户端对象QTcpSocket
(4)为QTcpSocketreadReady信号绑定槽,用来读取客户端发送到服务器端的消息,每次客户端有新消息发送,服务器端便会触发此信号
(5)QTcpSocketstateChanged信号可以用来监听客户端连接状态,槽函数中sender方法获取触发信号的对象,当检测到客户端连接断开时使用deleteLater方法清理对象内存,防止内存溢出
(6)获取连接的客户端IP和端口,使用QTcpSocket类的peerAddress方法和peerPort方法
(7)使用QTcpSocket对象的readwrite方法与客户端进行数据的收发
(8)QTcpServer类的findChildren方法可以获取连接的所有客户端对象
(9)QTcpServer类的listen方法用于监听本机IP和端口,即启动服务器
(10)QTcpServer类的close方法用于停止监听连接,表示不会有新的连接能连上,但是已经连接的客户端依旧可以发送信息

二、TCP客户端

(1)创建TCP客户端对象QTcpSocket
(2)为readReady信号绑定槽函数,监听数据的到来
(3)为stateChanged信号绑定槽函数,监听连接的状态变化
(4)使用writeread方法发送和读取信息
(5)使用bind方法绑定IP和端口
(6)使用connectToHost方法连接指定的服务器
(7)使用disconnectFromHost方法断开与服务器之间的连接

三、UDP通信

(1)创建UDP对象QUdpSocket
(2)为readReady信号绑定槽函数
(3)pendingDatagramSize方法获取接收到的数据大小
(4)hasPendingDatagrams方法判断是否有数据报到来
(5)readDatagram方法读取指定IP和端口发送过来的数据报
(6)bind方法绑定本机IP和端口号,即建立连接
(7)abort方法解除绑定,即断开连接
(8)writeDatagram方法向指定IP和端口的主机发送数据报,QHostAddress::Broadcast表示向局域网的所有IP指定端口发送数据报,即广播

四、QT实现单例模式

1.头文件

publicstatic MWidget *getInstance();

private:
	MWidget(QWidget *parent = nullptr);
    ~MWidget();
    static MWidget *instance;

2.源文件

MWidget *MWidget::instance = nullptr;

MWidget *MWidget::getInstance()
{
    if(instance==nullptr)
        instance = new MWidget;
    return instance;
}
  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值