当前位置: 首页 > wzjs >正文

购买网站空间多少钱怎么推广平台

购买网站空间多少钱,怎么推广平台,域名过户后怎么做网站,网站建设方案封面QT网络通信底层实现详解:UDP/TCP实战指南 目录 网络通信概述UDP通信实现TCP客户端实现TCP服务器实现通信流程对比实战应用场景 1. 网络通信概述 QT提供两种网络通信方式: #mermaid-svg-AnlTttVMXd7yIeiy {font-family:"trebuchet ms",verdan…

QT网络通信底层实现详解:UDP/TCP实战指南


目录
  1. 网络通信概述
  2. UDP通信实现
  3. TCP客户端实现
  4. TCP服务器实现
  5. 通信流程对比
  6. 实战应用场景

1. 网络通信概述

QT提供两种网络通信方式:

网络协议
无连接UDP
面向连接TCP
单播/组播/广播
可靠数据流

核心组件对比

特性UDPTCP
连接方式无连接面向连接
可靠性不可靠(可能丢包)可靠(数据完整有序)
速度较慢
适用场景实时视频/游戏/广播文件传输/远程控制
QT类QUdpSocketQTcpSocket/QTcpServer

2. UDP通信实现

UDP通信特点:
  • 无需建立连接
  • 支持单播、组播、广播
  • 发送端可不绑定端口
发送端实现:
// 创建UDP套接字
QUdpSocket *sender = new QUdpSocket(this);// 发送数据报
QByteArray datagram = "Hello UDP!";
qint64 sent = sender->writeDatagram(datagram, QHostAddress("192.168.1.100"), // 目标IP12345                          // 目标端口
);// 检查发送结果
if(sent == -1) qDebug() << "发送失败:" << sender->errorString();
接收端实现:
QUdpSocket *receiver = new QUdpSocket(this);
receiver->bind(12345); // 绑定监听端口// 连接信号槽
connect(receiver, &QUdpSocket::readyRead, [=](){while(receiver->hasPendingDatagrams()) {QByteArray buffer;buffer.resize(receiver->pendingDatagramSize());QHostAddress senderAddr;quint16 senderPort;receiver->readDatagram(buffer.data(), buffer.size(), &senderAddr, &senderPort);qDebug() << "收到[" << senderAddr.toString() << ":" << senderPort << "]" << buffer;}
});

运行效果

收到[ 192.168.1.50:12345 ] "Hello UDP!"

3. TCP客户端实现

通信流程:
ClientServerconnectToHost()连接建立(connected())write()readyRead()ClientServer
客户端代码:
QTcpSocket *client = new QTcpSocket(this);// 连接服务器
client->connectToHost("192.168.1.100", 8888);// 连接成功信号
connect(client, &QTcpSocket::connected, [=](){qDebug() << "已连接到服务器";client->write("Hello Server!");
});// 接收数据
connect(client, &QTcpSocket::readyRead, [=](){QByteArray data = client->readAll();qDebug() << "服务器响应:" << data;
});// 错误处理
connect(client, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error),[=](QAbstractSocket::SocketError error){qDebug() << "连接错误:" << client->errorString();
});

4. TCP服务器实现

通信流程:
ServerClientbind() + listen()连接请求接受连接(newConnection())发送数据响应数据ServerClient
服务器端代码:
// 创建TCP服务器
QTcpServer *server = new QTcpServer(this);// 绑定监听
if(!server->listen(QHostAddress::Any, 8888)) {qDebug() << "监听失败:" << server->errorString();return;
}// 新连接信号
connect(server, &QTcpServer::newConnection, [=](){QTcpSocket *clientSocket = server->nextPendingConnection();// 客户端信息qDebug() << "新客户端:" << clientSocket->peerAddress().toString();// 数据接收connect(clientSocket, &QTcpSocket::readyRead, [=](){QByteArray data = clientSocket->readAll();qDebug() << "客户端消息:" << data;// 回复客户端clientSocket->write("Message Received!");});// 断开连接处理connect(clientSocket, &QTcpSocket::disconnected, [=](){clientSocket->deleteLater();});
});

服务端运行效果

监听成功: 0.0.0.0:8888
新客户端: 192.168.1.50
客户端消息: "Hello Server!"

5. 通信流程对比

UDP vs TCP 工作流程:
步骤UDP通信TCP通信
初始化创建QUdpSocket创建QTcpSocket/QTcpServer
绑定接收端需bind()服务器需listen()
建立连接无连接建立过程客户端connectToHost()
数据发送writeDatagram()write()
数据接收readyRead()信号处理readyRead()信号处理
连接状态无状态connected()/disconnected()
关闭连接直接销毁对象先disconnectFromHost()

6. 实战应用场景

场景1:局域网设备发现(UDP广播)
QUdpSocket udpSocket;
QByteArray discoveryMsg = "DEVICE_DISCOVERY";
udpSocket.writeDatagram(discoveryMsg, QHostAddress::Broadcast, // 广播地址45454); // 约定端口
场景2:文件传输(TCP)
// 发送文件头信息
QFile file("document.pdf");
file.open(QIODevice::ReadOnly);
QByteArray header = QString("FILE|%1|%2").arg(file.fileName()).arg(file.size()).toUtf8();
socket->write(header);// 分块发送文件数据
while(!file.atEnd()) {QByteArray chunk = file.read(1024 * 64);socket->write(chunk);socket->waitForBytesWritten();
}

完整源码:GitHub网络通信示例
官方文档:QT Network模块


原创技术笔记,转载需注明出处。更多系统编程内容持续更新中…

http://www.dtcms.com/wzjs/314344.html

相关文章:

  • 网站建设中色无极搜盘 资源网
  • 街道网站建设更新汇报创意营销策划方案
  • 建设部网站 法规四川seo快速排名
  • ipad 网站开发工具盘多多网盘搜索
  • 可以做动画的网站国内十大软件测试培训机构
  • 做网站学什么在线搜索引擎
  • 网站的营销特点痘痘如何去除效果好
  • 网站经常被黑搜索引擎优化的定义是什么
  • 柳州市网站建设乐云seo
  • 邀人做任务比较好的发布网站简单免费制作手机网站
  • dedecms做中英文网站nba最新消息
  • 设计彩票网站开发深圳媒体网络推广有哪些
  • 青岛天元建设集团网站编程培训机构加盟哪家好
  • 做私人彩票网站手机百度app下载
  • 有没有代做模型的网站公司seo是什么意思
  • 舆情中心网站关键词在线优化
  • 在阿里怎样做单页销售网站免费百度seo引流
  • 专业网站优化关键词南宁百度seo排名
  • 外国做刹车片的企业网站营销技巧和营销方法视频
  • 长沙做网站a微联讯点很好seo自然优化排名
  • 商贸公司的网站建设今日头条搜索优化
  • 南宁网站制作网络公司广州市运营推广公司
  • 福州关键词搜索排名如何进行搜索引擎的优化
  • 团队网站怎么做义乌最好的电商培训学校
  • 内容转载的网站怎么做最好的免费信息发布平台
  • 网站建设 艺麟盛世google网页搜索
  • 阜阳网站建设阜阳杭州关键词自动排名
  • 虚拟机做门户网站如何绑定域名竞价账户托管的公司有哪些
  • 网络营销推广组合上海关键词优化报价
  • 哈密做网站魔贝课凡seo