| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> “DDS“你为什么不能通信丫 -> 正文阅读 |
|
[系统运维]“DDS“你为什么不能通信丫 |
通常情况下,如果ping不能在网络上正常工作,那么DDS通信也不能正常工作。 还有其他几个可能的原因会导致DDS不能正常通信:
要让两个应用程序进行通信,每个应用程序都需要将对方加入到自己发现的列表中,如果不加入,则会忽略掉对方节点。
要查看发布者和订阅者的QoS设置是否冲突,可以通过给发布者或者订阅者设置回监听器,在监听掩码中设置DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS和DDS_OFFERED_INCOMPATIBLE_QOS_STATUS。如果QoS存在冲突,则会出触发回掉函数。status参数还会告诉你冲突的QoS类别。
如果两台机器之间有防火墙,DDS也可能无法通信,因为防火墙不允许DDS所需的UDP端口上的数据包通过防火墙。关闭防火墙或修改配置以允许所需的端口将启用通信。如果需要组播通信,例如在缺省的发现对等体配置中,必须确保正在使用的组播组也由防火墙转发。
如果两台机器之间存在NAT, DDS将无法通信,因为NAT将更改主机IP和端口号。要解决这个问题,请确保需要通过NAT(作为发布者或订阅者)与主机通信的任何机器的地址都可以通过NAT进行路由。如果需要多播通信,例如在默认的发现配置中,您必须确保正在使用的多播组也被路由器转发;即使在这种情况下,一些通信仍然需要可路由单播地址。
如果主机A有多个网卡,主机B知道如何将流量路由到某个接口,则应该通过配置传输属性来禁用不可路由的接口。否则,主机A可能会选择一个不可路由的地址进行发现,从而导致两台机器无法通信。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 21:10:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |