qt waitforreadyread返回假_Qt网络编程之简易聊天室,界面很nice

1d789e28590cc1b9826730f4dccf8015.png

网络聊天室程序

  1. 基于TCP的可靠连接(QTcpServer、QTcpSocket)
  2. 一个服务器,多个客户端

6648a6495d4e1a7b29c2d2e3d77fc2c2.png

3. 服务器接收到某个客户端的请求以及发送信息,经服务器发给其它客户端 最终实现一个共享聊天内容的聊天室!

效果展示:

ec8942191c6ff84ee405c315207debdb.gif

来源:

https://mp.weixin.qq.com/s?__biz=MzU5NjI2NzM5OA==&mid=2247485671&idx=1&sn=6e2a45dfb676b6ae1333ea552b979d07&chksm=fe64100ec9139918ad382cb12742ebc71074ff216bbbd4f5b9789b3ed8de5f95b7da1a3500fb&token=1091309436&lang=zh_CN#rd​mp.weixin.qq.com

github地址:https://github.com/ADeRoy/Qt_Demo

基于Qt的网络编程服务端

QTcpServer

提供一个TCP基础服务类 继承自QObject,这个类用来接收到来的TCP连接,可以指定TCP端口或者用QTcpServer自己挑选一个端口,可以监听一个指定的地址或者所有的机器地址。

QTcpServer的信号:

newConnection()     //有新连接连接时触发该信号

配置

pro文件添加

QT += network

枚举设备所有ip地址

QList<QHostAddress> ipList = QNetworkInterface::allAddresses();
QStringList addressStrList;
addressStrList.clear();

for(int index = 0;index<ipList.size();index++)
{
    
    if(ipList.at(index).isNull())   continue;         //如果地址为空,则去掉
    QAbstractSocket::NetworkLayerProtocol protocol = ipList.at(index).protocol();
    if(protocol != QAbstractSocket::IPv4Protocol)   continue;           //只取IPV4的地址
    addressStrList.append(ipList.at(index).toString());
}
ui->comboBox_Address->addItems(addressStrList);

listen() close()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值