检查数据是否正常

时间:2013-12-08 04:39:33

标签: c++ boost boost-asio

我使用boost :: asio(tcp)从一台pc发送和接收固定大小(100bytes)的数据。什么是检查一切是否正常而不影响性能的最佳方法?

一个想法是保存第一个和最后一个角色并将它们放在第一位,所以:“你好我的......最后的战斗”将成为“hd hello my ... battle in the end”。最后一个字符串将是102个字符,接收者也可以执行大小检查

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

你们有什么好主意吗?

注意:请记住:我将使用这个数百万次,每微秒计数。 数据是用空格分隔的单词。

1 个答案:

答案 0 :(得分:2)

TCP旨在成为可靠的传输协议。既然你说你正在使用TCP,你可以简单地假设如果数据到达并且是全长的,它就会正确到达。

如果您担心数据在传输中被破坏超出TCP的16位校验和可以检测到的内容,您可以在数据末尾添加32位CRC。