Windows与ARM平台的基于JRTPLIB的RTP通信

Windows与ARM平台的基于JRTPLIB的RTP通信及其问题解决

    按照以上两篇文章在WINDOWSARM上成功测试好JRTPLIB后,(当然要在armpingwindows主机地址,同时关闭双方的防火墙)下面就介绍如何测试WINDOWS,ARM之间的RTP通信。

jrtplib解压后的目录里有example文件夹,里面的程序可以提供测试用。

Example1可以用来发送数据,example2可以用来发送接收。Example3,4用来接收。

这里我使用example1用来发送数据,example4用来接收,

首先在windows端运行example4

Enter local portbase9000

Number of seconds you wish to wait:100(可大一点,以免后面操作时间不够)

 

arm端运行example1按照提示输入

Enter local portbase:8000(创建RTP会话端口)

Enter the destination IP address:10.0.0.116(我的WINDOWS IP地址)

Enter the destination port9000(目标端口)

Number of packets you wish to be sent10(不能超过Int型的4字节数:32767

 

这样之后,在windows下收不到数据

解决办法:在网上查了很多资料,一种说法是正确的:PC端使用的字节序是little endian,arm端使用的是big endian,这样会造成ARM端虽然像PC发送了数据,但PC端识别不了。。。

 

需要把jrtplib文件夹 /src下的rtpconfig_unix.h文件中的#define big endian删除掉。

然后重新编译库文件,并将Libjrtp-3.7.1.so,libjthread-1.2.1.so拷贝到/nfs/usr/lib中,

网上很多文章到此就可以了,只需把解压后的JRTPLIB文件夹中的example1复制到nfs下执行即可看到arm与Pc端成功通信。

但是,我这仍然不行,挣扎了一个多星期,最后才突发想到 是不是要重新编译下例程example1.cpp,于是执行命令

arm_v5t_le-g++  -o  example11  ./example2.cpp  -I/home/jrtp/include/jrtplib3  -I/opt/jrtplib-jthread/include/jrtplib3(JRTP头文件路径)  -L/opt/jrtplib-jthread/include/jthread  -ljthread -ljrtp –lpthread

编译成功,然后拷贝example11(用来发送)到nfs下执行,按照上面说的在PC下执行接收程序,这样测试终于成功了。。。

兴奋。。。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值