我应该使用什么应用层协议来控制网络上的设备?
我将通过以太网从 PC 控制设备(基于 Arduino)。类似的事情使用哪些常见的应用层协议?通信几乎完全是命令确认,可能有一点发送命令并接收少量结果数据。
我正在考虑的一件事是 SNMP。另外,由于它是嵌入式设备,我宁愿解压二进制结构而不是 XML/JSON。
I'm going to be controlling a device (Arduino-based) from a PC over Ethernet. What common application layer protocols are used for stuff like this? The communication would be almost entirely command-acknowledge, with maybe a little bit that sends a command and receives a small amount of result data.
One thing I'm considering is SNMP. Also, since it's an embedded device, I'd rather be unpacking binary structures than XML/JSON.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果通信很复杂,像 SNMP 这样的协议可能有意义,但如果数据量很小并且命令很简单,您可能只想创建自己的协议。发送和解析小型二进制结构非常容易。如果命令的大小可能不同,则字节计数前缀很有用。
此外,虽然二进制很容易解析,但如果您需要监视网络流量,则 ASCII 更容易查看,并且如果您想使用 telnet 之类的东西进行测试,则更容易键入,因此如果需要,请考虑使用简单的基于文本的协议不太麻烦。
Something like SNMP might make sense if the communications are complex, but if the amount of data is small and the commands are simple, you may just want to create your own protocol. It's pretty easy to send and parse small binary structures. If the commands can vary in size, then a byte-count prefix is useful.
Also, while binary is easy to parse, ASCII is easier to look at if you ever need to monitor the network traffic, and easier to type if you want to use something like telnet to test, so consider a simple text-based protocol if it's not too much trouble.