LCM多机通讯要点
2023-12-17 13:42:58
本地LCM多节点通信
保证以下两点,就可以通信
- 多节点的udp地址相同,比如程序中
lcm::LCM lcm("udpm://239.255.76.67:7667?ttl=1");
- 话题名称相同
同一局域网下多机通信
参考LCM通信库的安装及使用
其中重要的为每台机器A,B,C,…都使能UDP多播
- Step1 查看网卡名称
我的电脑是这样,用的是有线网络,那就是$ ifconfig #查看用于通讯的网卡设备名字
eno2
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:d8:61:a4:9e:85 brd ff:ff:ff:ff:ff:ff inet 10.1.1.140/24 brd 10.1.1.255 scope global noprefixroute eno2 valid_lft forever preferred_lft forever inet6 fd00:3c6a:4854:3f3::1000/128 scope global dynamic noprefixroute valid_lft 76819sec preferred_lft 76819sec inet6 fd00:3c6a:4854:3f3:e87b:4245:de46:e7e6/64 scope global temporary dynamic valid_lft 85971sec preferred_lft 13971sec inet6 fd00:3c6a:4854:3f3:6e3e:2e18:d8d2:a888/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 85971sec preferred_lft 13971sec inet6 fe80::6c21:fd94:436e:bc7a/64 scope link noprefixroute valid_lft forever preferred_lft forever
- Step2 运行下面两条命令来显式使能 UDP 多播和添加路由表
sudo ifconfig eno2 multicast sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eno2
- Step3 为其他需要通讯的电脑也执行Step1~2,然后多机就可以通讯了!
其他细节
在进行多设备通讯时,需要将ttl设置为大于0的值,LCM默认ttl=0,默认只在本地回环进行通讯。同时,需要target IP 设定为支持组播(Multicast)的IP 分段:(224.0.0.0-239.255.255.255)
文章来源:https://blog.csdn.net/boyhoodme/article/details/135043324
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!