首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SocketCAN要求CRC和ACK

SocketCAN要求CRC和ACK
EN

Stack Overflow用户
提问于 2020-12-01 09:56:16
回答 1查看 181关注 0票数 0

我是否可以使用C加长的socket库接收、读取和修改CRC和ACK?

我有什么办法可以用吗?我使用树莓Pi和PiCan2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-01 10:05:27

我假设您询问的是TCP/IP,因为UDP数据包没有附加ACK。

AFAIK,您唯一的解决方案是使用Linux的原始套接字并实现您自己的TCP层(请参阅WireShark),因为CRC和ACKs不应该对用户级代码可用。

CRC :您可能有足够的数据来计算CRC,因为任何CRC错误都意味着消息永远不会到达用户应用程序(内核将抛出数据包)。所以你可以安全地重新计算CRC。至于写儿童权利委员会,

ACK :您的应用程序没有收到有关ACK数据包的通知,因此无法提取数据。

编辑:(因为这个问题是在我发布答案后编辑的)

请注意,原始套接字并不是可移植到所有OS版本的,因此您的代码不会是可移植的(这是QUIC协议使用UDP而不是原始套接字的原因之一)。

如果在Pi上运行Linux,可以使用WireShark检查流量。虽然你的C程序不能使用它,但它可以成为一个很好的调试工具。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65088288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档