检查数据是否正常到达

Check if data arrived OK

本文关键字:数据 是否 检查      更新时间:2023-10-16

我使用boost::asio(tcp)从一台电脑向另一台电脑发送和接收固定大小(100字节)的数据。在不影响性能的情况下,检查是否一切正常的最佳方法是什么

一个想法是保存第一个和最后一个角色,并将它们放在第一位,因此:"你好,我…战斗到底"将变成"hd你好,我的…战斗到底。"。最终字符串为102个字符,接收器也可以执行大小检查

另一个想法是使用哈希,但我想这对cpu来说会非常紧张

你们有什么好主意吗?

注意:请记住:我将使用此方法数百万次,每微秒都很重要。数据是用空格分隔的单词。

TCP被设计为一种可靠的传输协议。既然您说您使用的是TCP,您就可以简单地假设,若数据到达并且是完整长度的,那个么它就正确到达了。

如果你担心数据在传输中被破坏,超出了TCP的16位校验和所能检测到的范围,你可以在数据末尾添加一个32位CRC。