![1d789e28590cc1b9826730f4dccf8015.png](https://i-blog.csdnimg.cn/blog_migrate/ad63b639aacc1dd50af5fb4b35c88b30.jpeg)
网络聊天室程序
- 基于TCP的可靠连接
(QTcpServer、QTcpSocket)
- 一个服务器,多个客户端
![6648a6495d4e1a7b29c2d2e3d77fc2c2.png](https://i-blog.csdnimg.cn/blog_migrate/11c4bf69805d766c16266c3a32a619f8.jpeg)
3. 服务器接收到某个客户端的请求以及发送信息,经服务器发给其它客户端 最终实现一个共享聊天内容的聊天室!
效果展示:
![ec8942191c6ff84ee405c315207debdb.gif](https://i-blog.csdnimg.cn/blog_migrate/552872ea811525360c761828ec47d55d.gif)
来源:
https://mp.weixin.qq.com/s?__biz=MzU5NjI2NzM5OA==&mid=2247485671&idx=1&sn=6e2a45dfb676b6ae1333ea552b979d07&chksm=fe64100ec9139918ad382cb12742ebc71074ff216bbbd4f5b9789b3ed8de5f95b7da1a3500fb&token=1091309436&lang=zh_CN#rdmp.weixin.qq.comgithub地址: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);