96SEO 2026-02-23 12:17 24
socket编程UDP-文件传输模拟TCP建立连接脱离连接#xff08;进阶篇#xff09;_udp

sock…在下面博客中我介绍了利用UDP模拟TCP连接、按数据包发送文件的过程并附上完整源码。
socket编程UDP-文件传输模拟TCP建立连接脱离连接进阶篇_udp
socket编程UDP-实现滑动窗口机制与累积确认GBN-CSDN博客
本篇博客我将在此基础上实现停等机制完成客户端发送的接收确认、超时重传。
每次客户端发送的数据包有唯一的序列号seq随着数据包的发送不断递增
如果服务器端收到新的数据包会发送对应的ack.(比如收到seq1就会发送ack1,收到seq2就会发送ack2).
所谓停等机制就是发送方每轮只发送一个数据包直到收到期待的ack(即与序列号对应的ack)才会发送下一个数据包。
如果发送方在定时器时间内没有收到期待的ack,将会重传这一数据包。
正如图中发送端重传seq2)
‘sendFile‘方法负责逐个发送数据包并在每次发送后调用‘waitForAck‘等待接收
确认。
每个数据包都包含一个序列号‘seqNum‘用于标识数据的顺序和确认接收的正确性。
发送数据包后
‘waitForAck‘方法使用条件变量和超时机制如果在设定的超时时间内未收到正确的
‘false‘触发重传逻辑如果收到了正确ack,则会返回true.
std::chrono::milliseconds(TIMEOUT),
ackPacket(SERVER_PORT,ROUTER_PORT);socklen_t
reinterpret_castchar*(ackPacket),
(ackPacket.validateChecksum(clientAddr.sin_addr.S_un.S_addr,
routerAddr.sin_addr.S_un.S_addr)
lock(mtx);std::cout收到ACKackackPacket.ackstd::endl;ackReceived
packet(CLIENT_PORT,ROUTER_PORT);packet.seq
static_castint(file.gcount());packet.flag
seqNum;//1.创建接收线程避免第三次握手时ACK的丢包Datagram
AckPacket(SERVER_PORT,ROUTER_PORT);if(seqNum3){std::thread
ackThread1(Sender::receivePacket,this,
std::ref(AckPacket));std::this_thread::sleep_for(std::chrono::milliseconds(TIMEOUT));
//休眠等一会儿ackThread1.detach();//修改}while
2seqNum3AckPacket.validateChecksum(clientAddr.sin_addr.S_un.S_addr,
routerAddr.sin_addr.S_un.S_addr))//2.如果此时又收到了SYN-ACK{std::cout
ackPacket(CLIENT_PORT,ROUTER_PORT);ackPacket.flag
ACKsendPacket(ackPacket);std::cout
重新发送ACK包连接建立成功\n;std::this_thread::sleep_for(std::chrono::milliseconds(TIMEOUT));
//休眠等一会儿AckPacket.flag1;}sendPacket(packet);std::cout
packet.checksumstd::endl;std::this_thread::sleep_for(std::chrono::milliseconds(5*TIMEOUT));
https://github.com/yeyeyeyeye-zhang/Computer-Network/tree/main/lab3-1/codes
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback