QT小Demo——自制Q群聊天室

目录

简介

github源码

一个简易的模拟Q群聊天的小Demo。

QT小Demo——自制Q群聊天室
QT小Demo——自制Q群聊天室

TableWidget

这里在线聊天界面右侧的在线用户是使用TableWidget呈现的,通过这个控件可以方便的统计人数以及xxx是否在其中。参考

QTextStream

QTextStream是一个非常强大的类,它可以对IO设备,QString,QByteArray等类进行方便的读写操作。
在文本流中,QTextStream重载了两种运算符以简化输入输出流的用法,运算符<<被称为插入符,顾名思义,是往该流对象中插入数据。另一个运算符>>被称之为提取符,即从流对象中提取出数据。
参考

QDataStream

QDataStream提供了一种与运行平台无关的存储格式,他不仅支持QList和QMap<K,T>等QT容器类,还支持整型和双精度型等基本的c++类,以及其他许多种qt数据类型,诸如QByteArray、QFont、QImage、QPixmap、QString和QVariant.
参考

UDP网络编程

  1. 配置文件添加
QT       += core gui network
  1. 加入头文件
#include <QUdpSocket>
  1. 建立本地信息
 //建立套接字对象
udpSocket = new QUdpSocket(this);
//绑定端口号
//bool bind(const QHostAddress &address, quint16 port, QAbstractSocket::BindMode mode)
//bool bind(quint16 port, QAbstractSocket::BindMode mode)
udpSocket->bind(33333,QUdpSocket::ShareAddress |QUdpSocket::ReuseAddressHint);
  1. 监听信号
connect(udpSocket,&QUdpSocket::readyRead,this,[=](){
	QByteArray datagram;
    datagram.resize(udpSocket->pendingDatagramSize());  //设置大小
    udpSocket->readDatagram(datagram.data(),datagram.size()); //读取数据流
    QDataStream in (&datagram,QIODevice::ReadOnly);
});
常用方法 说明
qint64 pendingDatagramSize() const 返回udp数据报的大小,没有返回-1
qint64 readDatagram(char *data, qint64 maxSize, QHostAddress *address = nullptr, quint16 *port = nullptr) 读取数据,需指定最大字节数
qint64 writeDatagram(const char *data, qint64 size, const QHostAddress &address, quint16 port) 写数据,需指定大小、ip地址、端口
上一篇:我的QT Creator学习笔记(三十五)——网络编程之UDP与TCP


下一篇:对环形队列为空留一方式判满与有有效值的理解