我使用boost :: asio(tcp)从一台pc发送和接收固定大小(100bytes)的数据。什么是检查一切是否正常而不影响性能的最佳方法?
一个想法是保存第一个和最后一个角色并将它们放在第一位,所以:“你好我的......最后的战斗”将成为“hd hello my ... battle in the end”。最后一个字符串将是102个字符,接收者也可以执行大小检查
另一个想法是使用哈希,但我想这对cpu来说非常激烈
你们有什么好主意吗?
注意:请记住:我将使用这个数百万次,每微秒计数。 数据是用空格分隔的单词。
答案 0 :(得分:2)
TCP旨在成为可靠的传输协议。既然你说你正在使用TCP,你可以简单地假设如果数据到达并且是全长的,它就会正确到达。
如果您担心数据在传输中被破坏超出TCP的16位校验和可以检测到的内容,您可以在数据末尾添加32位CRC。