Qt TCP & UDP 使用总结

本文总结了使用Qt Network模块开发TCP和UDP通信工具的经验,包括TCP的QTcpServer和QTcpSocket异步操作,解决TCP连接错误问题,以及客户端连接管理。文中详细分析了Qt官方文档,解释了如何处理连接、发送消息及管理socket对象。同时,提到了client部分的改进,如关闭连接的策略,以及通过信号和槽管理连接状态。
摘要由CSDN通过智能技术生成

使用Qt Network模块开发了一个UDP和TCP测试工具,client和server都写在一起,运行时先选择模式,其中TCP部分主要使用QTcpServer和QTcpSocket两个类,采用异步方式。开始是参考霍亚飞的《Qt Creator快速入门》,后来自己做了不少修改,现在对发现的问题做一下总结和思考。
代码地址:Github上的代码

Server部分

  1. 霍亚飞的书上的listen函数是tcpServer->listen(QHostAddress::LocalHost,6666),但我用了之后报错: socket error 0 connection refused ,stackoverflow上说原始是win10的防火墙导致,IP还是要用本机的地址,修改之后正常了。

  2. 霍亚飞的将tcpServer的newConnection信号与发送消息的槽相连。这个发送消息的功能,我试了试发现不能连续发送,里面用到了函数nextPendingConnection,返回的是下一个连接,这种时候就该上Qt源码:

    Q_D(QTcpServer);
    if (d->pendingConnections.isEmpty())    // 没有pending连接,返回
        return 0;
    if (!d->socketEngine) {
        qWarning("QTcpServer::nextPendingConnection() called while not listening");
    } else 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值