我利用UDP协议进行了非常简单的通信。我想添加一些错误检查(可能是一个不受以前消息影响的哈希函数)。我知道CRC功能,但是在实现中我发现CRC计算受到先前消息的影响,这在我的情况下是不合适的,因为我的UDP通信中的某些数据可能不会到达。有没有人知道可以下载的CRC能满足我的需求(也许我可以自己编写一个CRC校验,但不幸的是我的时间有点短)?是否有任何其他已知选项(.NET Framework 4.5中已有的类/函数会很棒)。
感谢您的任何努力。
答案 0 :(得分:2)
总的来说,我想建议使用TCP。在那里你不需要关心包的顺序是否合适,也不需要考虑校验和(因为它们是build in)。 TCP具有所有内置功能,如果程序包丢失,TCP触发器也会重新传输或丢失程序包。
但是,即使UDP具有内置校验和,您通常也不需要实现这样的CRC校验。另请参阅维基百科中的packet structure。
如果你真的想在damieng.com上添加一个crc check this implementation,它看起来很好,但我没有检查它。