今天发现jrtplib-2.9不支持我们学校的专用网与外网通信

jrtplib-2.9建立了三个socket

rtpsock           专用来接收rtp数据包     邦定一个偶数端口

rtcpsock        专用来接收rtcp数据包    邦定rtpsock端口+1

sendsock     专门用来发送数据包      邦定0,系统自动分配

NAT协议转换表(示意,不完整)

专用地址   专用端口     外部地址      外部端口       传输层协议

如下假设:

172.29.26.30 用4000端口给60.212.212.130的40000端口发数据


假设NAT路由器的ip为202.102.154.3 它给影射的端口是 40000

然后60.212.212.130用非40000端口把数据发给202.102.154.3的

40000端口,我们学校的情况是172.29.26.30数不到数据。

然后60.212.212.130用40000端口把数据发给202.102.154.3的

40000端口,172.29.26.30就能到数据。

也就是说rtp发送方的发送端口(sendsock的端口)必须是已知固定的,请求发送方必须把请rtp求数据包的

目的port设置为该端口。

可是rtpjrtp-2.9的发送端口是自动分配的。

解决方案:

修改rtp库,使其sendsock邦定可获得已知端口。请求端连接该端口。

但是无法解决,多个客户端请求时,rtp服务器如何监听和发送数据并发处理。

监听时recvfrom要占用端口

发送数据要占用同样的端口

不知如何是好。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值