编写了一个简单的示例应用程序 ,演示如何使用TCP v4 LAN传输。 它会根据您在帖子中添加的设置设置参与者。

请注意,发布者和订阅者应用程序的参与者共享与我在下面的代码片段中设置的相同的QoS设置。 唯一的区别是发布服务器和订阅服务器应用程序中的dds.transport.TCPv4.tcp1.server_bind_port值不同(即发布服务器应用程序中的7400和订阅服务器应用程序中的7401)。 使用不同端口的原因是能够使用本地主机测试应用程序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
char myport[5] = "7400" // Set it to 7401 in the subscriber application
DDSDomainParticipantFactory::get_instance()->get_default_participant_qos(participant_qos);
participant_qos.transport_builtin.mask = DDS_TRANSPORTBUILTIN_MASK_NONE;
DDSPropertyQosPolicyHelper::add_property(participant_qos.property,
                     "dds.transport.load_plugins",
                     "dds.transport.TCPv4.tcp1",
                     DDS_BOOLEAN_FALSE);
DDSPropertyQosPolicyHelper::add_property(participant_qos.property,
                     "dds.transport.TCPv4.tcp1.library",
                     "nddstransporttcp",
                     DDS_BOOLEAN_FALSE);
DDSPropertyQosPolicyHelper::add_property(participant_qos.property,
                     "dds.transport.TCPv4.tcp1.create_function",
                     "NDDS_Transport_TCPv4_create",
                     DDS_BOOLEAN_FALSE);
DDSPropertyQosPolicyHelper::add_property (participant_qos.property,
                      "dds.transport.TCPv4.tcp1.parent.classid",
                      "NDDS_TRANSPORT_CLASSID_TCPV4_LAN",
                      DDS_BOOLEAN_FALSE);
DDSPropertyQosPolicyHelper::add_property (participant_qos.property,
                      "dds.transport.TCPv4.tcp1.server_bind_port",
                      myport,
                      DDS_BOOLEAN_FALSE);

要在任何目录上运行示例unzip tcpv4_lan_example并运行rtiddsgen生成makefile或Visual Studio项目,您需要编译。 请注意,您将看到一些警告消息,因为现有文件不会被rtiddsgen更新的内容替换。

rtiddsgen -example i86Linux2.6gcc4.4.3 -language C ++ hello_tcp.idl
文件/home/fgarcia/rti/test/tcpv4_lan_example/hello_tcp_subscriber.cxx已存在,不会被更新的内容替换。 如果您想要使用新内容获取新文件,请移除此文件或提供-replace选项。
文件/home/fgarcia/rti/test/tcpv4_lan_example/hello_tcp_publisher.cxx已存在,不会被更新的内容替换。 如果您想要使用新内容获取新文件,请移除此文件或提供-replace选项。
文件/home/fgarcia/rti/test/tcpv4_lan_example/USER_QOS_PROFILES.xml已存在,不会被更新的内容替换。 如果您想要使用新内容获取新文件,请移除此文件或提供-replace选项。
完成
然后,使用Visual Studio或make编译您的应用程序。

make -f makefile_hello_tcp_i86Linux2.6gcc4.4.3 
在运行应用程序之前,您必须配置一些东西。 首先,如果您使用Windows,则需要将NDDSHOME / lib / <platform_name>目录添加到Path ; 或者LD_LIBRARY_PATH ,如果你使用的是Linux。 将此文件夹添加到您的环境的原因是,我们将参与者配置为在未指定其位置的情况下加载nddstransporttcp.dll (或Linux中的libnddstransporttcp.so )。 例如在Linux上,假设我们已经设置了NDDSHOME并且您正在使用BASH:

导出LD_LIBRARY_PATH = $ NDDSHOME / ndds.5.0.0 / lib / i86Linux2.6gcc4.4.3:LD_LIBRARY_PATH 
然后,在发布者和订阅者的应用程序环境中设置NDDS_DISCOVERY_PEERS并运行这些应用程序。 在发布方一侧,请记住订阅服务器参与者中的dds.transport.TCPv4.tcp1.server_bind_port为7401,您需要添加该端口以与订阅服务器进行通信。 再假设你正在使用Linux和BASH:

导出NDDS_DISCOVERY_PEERS = tcpv4_lan:// localhost:7401
 ./objs/i86Linux2.6gcc4.4.3/hello_tcp_publisher 
 =====================
发布商申请
 =====================
 dds.transport.tcp.tcp1.server_bind_port = 7400
打个招呼,算0
打个招呼,算1
打个招呼,算2
打个招呼,算3
打个招呼,算4
打个招呼,算5 
在订户方面,因为发布商运行中的dds.transport.TCPv4.tcp1.server_bind_port为7401:

导出NDDS_DISCOVERY_PEERS = tcpv4_lan:// localhost:7400
 ./objs/i86Linux2.6gcc4.4.3/hello_tcp_subscriber
 =======================
订户应用程序
 =======================
 dds.transport.tcp.tcp1.server_bind_port = 7401
你好用户睡了4秒...
你好用户睡了4秒...

名称:“姓名”
计数:2
你好用户睡了4秒...

名称:“姓名”
计数:3
你好用户睡了4秒...

名称:“姓名”
计数:4
你好用户睡了4秒...

名称:“姓名”
数量:5

RTI_DDS使用参与者QoS属性编辑传输TCP相关推荐

  1. CVPR 2019 | STGAN: 人脸高精度属性编辑模型

    AttGAN 和 StarGAN 在人脸属性编辑上取得了很大的成功,但当人脸属性之间相互交集或者目标人脸属性比较复杂时,这两种方式对于控制属性的标签上的精细化就显示了些许的不足.STGAN 是一个建立 ...

  2. 【CV秋季划】人脸编辑之统一属性编辑方法视频更新

    本次给大家带来的是有三AI-CV秋季划-人脸算法组的视频,包括人脸通用属性编辑上下两期的内容,如果你还不知道有三AI-CV秋季划-人脸算法组是什么,可以看下面的视频和图文. 点击边框调出视频工具条 [ ...

  3. 【星球知识卡片】人脸属性编辑都有哪些核心知识点,如何长期进行学习

    大家好,欢迎来到我们的星球知识小卡片专栏,本期给大家分享人脸属性编辑的核心技术点. 作者&编辑 | 言有三 1 人脸表情编辑 人脸表情编辑即更改脸部的表情属性,包括嘴唇.鼻子等区域.可以广泛应 ...

  4. GitHub人脸属性编辑神器横空出世!让你爱上异性的自己!

    关注公众号,发现CV技术之美 双十一如约而至,灵魂拷问: 不会吧不会吧,你还是孤身一人呀? 请理直气壮的大声说出: 当!然!不!是! 今天小编给大家介绍一个AI黑科技,能够完美实现人脸性别变换,并带有 ...

  5. ae批量修改字体_AE脚本-批量文字替换图层样式属性编辑脚本Aescripts pt_TextEdit 2.41 + 使用教程...

    AE脚本-批量文字替换图层样式属性编辑脚本Aescripts pt_TextEdit 2.41 + 使用教程 Aescripts pt_TextEdit 2.41可以快速的修改合成中的文字图层的任何属 ...

  6. PyQt(Python+Qt)入门:Designer组件属性编辑界面中QWidget类相关属性详解

    本文适用人员:本文比较长,适合不理解Qt Designer部件属性的人员阅读或资料查找. 声明: 1.如果有人认为本文是简单的复制粘贴+翻译而成,敬请读本文最后的后记: 2.本文为老猿Python学习 ...

  7. 传输层 --- 面向连接的传输TCP

    面向连接的传输---TCP 一.TCP概述 二.TCP报文段结构 三.TCP可靠数据传输 四.TCP流量控制 五.TCP连接管理 一.TCP概述 1.TCP服务模型: 在一对通信的进程之间提供一条理想 ...

  8. 【每周CV论文推荐】StyleGAN人脸属性编辑有哪些经典论文需要阅读

    欢迎来到<每周CV论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 当前人脸图像领域的研究和落地都发展得非常迅速 ...

  9. matlab图形编辑,matlab绘制图形plot属性编辑

    matlab绘制图形plot属性编辑 matlab绘制图形plot属性编辑 使用plot绘制图形函数,设置其中的图形参数,包含线条颜色,粗细,线条类型. x=1:15; y=x.^3; 方法一 是在p ...

  10. Android之间互相的录屏直播 --点对点传输(tcp长连接发送h264)(一)

    前言 转载请注明出处 ,来自: 暂时两篇: (1) Android之间互相的录屏直播 –点对点传输(tcp长连接发送h264)(一) http://blog.csdn.net/baidu_335462 ...

最新文章

  1. 可构建AI的「AI」诞生:几分之一秒内,就能预测新网络的参数
  2. 一文览尽ToF深度相机技术
  3. tomcat8 热部署
  4. 编程语言介绍、python解释器执行代码的过程
  5. 汇编指令---CDQ
  6. 没有读过的书,就不要瞎推荐了!
  7. 安装 Python-Client
  8. 职场实用和常用的十大心理学效应
  9. MySQL中的alter table操作之add/modify/drop列
  10. java读图片显示到前端_java从前端获取参数添加到图片后返回整张图片
  11. python socketserver并发实例
  12. 源码-PL/SQL从入门到精通-第二章-PL/SQL基本概念-Part 1
  13. 微信小程序拨号功能,调起手机拨号!
  14. 将dubbo暴露HTTP服务
  15. 基于FPGA的密码锁开发——(3)密码设置模块驱动
  16. Jodd-Java的瑞士军刀 demo
  17. linux学习 - 如何确定是否是 Centos 系统
  18. 4、IOC 之Bean的依赖关系
  19. JavaScript实现模态对话框
  20. Win11右下角图标折叠不见了怎么办?

热门文章

  1. 第五届山东理工大学ACM网络编程擂台赛
  2. MySQL的开发技巧2
  3. 多源异构传感器时空校准
  4. 你知道什么是MEMS传感器吗?
  5. 边框盒子 box-sizing 的 content-box 和 border-box属性
  6. 计算机算法与程序框图,1.1算法与程序框图(3)(教学设计)
  7. 生信分析是个什么玩意儿?
  8. CSS中的伪类选择器、颜色、度量单位、文本字体及文本样式设置
  9. 阿里官方 Redis 开发规范
  10. vim 快捷键 总结-编辑文件