QT——TCP网络调试助手

目录

一.项目展示

​编辑

二.开发流程

三.QTcpServer、QTcpSocket、QUdpSocket类的学习

1.QTcpServer服务端

2.QTcpSocket客户端

3.Udp通信

四.网络调试助手

1.首先我们实现当用户选择不同协议类型时不同的UI组件如何切换

2.实现打开/关闭按键图片的切换

方式一:通过其父类所提供的void setIcon(const QIcon &icon)函数去实现

方式二:重写QPushButton的事件

3.定时发送

 4.实现代码如下


一.项目展示

QT——TCP网络调试助手_第1张图片

二.开发流程

QT——TCP网络调试助手_第2张图片

三.QTcpServer、QTcpSocket、QUdpSocket类的学习

Tcp面向连接的基于字节流的协议(点对点)

Udp面向无连接的基于报文的协议(一对一、一对多、多对多)

3.1QTcpServer类中包含以下函数

listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0); 用于监听

QTcpSocket nextPendingConnection();                        

从监听套接字中获取一个已准备好的客户端进行连接
deleteLater();

释放资源

disconnectFromHost(); 

断开连接

 QTcpServer类包含以下信号

newConnection(); 监听到有新的连接时
acceptError(QAbstractSocket::SocketError socketError); 尝试接受新的连接时发生错误

 3.2QTcpSocket类包含以下函数

connectToHost(const QHostAddress &address = QHostAddress::Any, quint16 port = 0); 连接服务端

QHostAddress peerAddress();

获取ip地址
quint16 clientPort(); 获取端口号
readall(); 读取消息
write(QByteArray data); 发送数据
state(); 判断当前状态,如:if(socket->state== QAbstractSocket::ConnectedState)
deleteLater(); 释放资源

 QTcpSocket类包含以下信号

connected(); 成功连接
readyRead(); 有新的数据发来时
disconnected(); 断开连接时

3.3QUdpSocket类包含以下函数

bind(const QHostAddress &address = QHostAddress::Any, quint16 port = 0); 绑定ip地址和端口,接受数据时使用
bool hasPendingDatagrams() const; 用于检查是否有待处理的数据报。返回 true: 表示有一个或多个待处理的数据报
pendingDatagramSize(); 通常用于设置接受缓冲区的大小时使用,返回下一个待处理的数据报的大小
readDatagram(buffer.data(), buffer.size(), &sender, &senderPort);  将接收到的数据存储到提供的缓冲区中
writeDatagram(<要发送的数据>, , <端口号>);  ip为QHostAddress::Broadcast代表广播发送
close(); 关闭udp套接字
deleteLater(); 释放资源

你可能感兴趣的:(qt,tcp/ip,开发语言)