qt UDP 本机多个客户端连接服务器

这篇博客探讨了在QT环境下使用UDP协议时,如何处理本机多个客户端成功连接到服务器的问题。通过绑定特定端口,设置数据流版本以及处理套接字通信,解决了当第二个客户端连接时好友列表无法显示新登录好友的错误。加入QUdpSocket的ShareAddress和ReuseAddressHint选项以及信号槽机制,确保了多客户端的正常通信。
摘要由CSDN通过智能技术生成

void panel::init()

{

    udpSocket = new QUdpSocket(this);

    udpSocket->bind(19730,QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint);

    QString msgType = "MSG_CLIENT_NEW_CONN";

    QByteArray block;//用于暂存要发送的数据

    QDataStream out(&block, QIODevice::WriteOnly);//使用数据流写入数据

    out.setVersion(QDataStream::Qt_4_6);//设置数据流的版本,客户端和服务器端使用的版本要相同

    out << (quint16)0 << msgType << usrname;//设置发送长度初始值为0,设置发送内容

    out.device()->seek(0);//回到字节流的起始位置

    //往套接字缓存中写入数据,并发送

    udpSocket->writeDatagram(block.data(), block.size(), QHostAddress(ip), (quint16)port.toUInt()+1);

    connect(this->udpSocket, SIGNAL(readyRead()), this, SLOT(recvMsg()));

}


一直出现的错误是当第二个客户端连接的时候,好友列表并不显示新登录的好友,后

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值