现在的位置: 首页 > 综合 > 正文

jrtplib-2.9 校园NAT冲突解决

2013年09月15日 ⁄ 综合 ⁄ 共 690字 ⁄ 字号 评论关闭



      80000

NAT路由器

202.102.154.3

      60000


 

80000

外网服务器

60.212.212.63

59999


 

    60000

内网计算机

172.29.26.30

    59999

内网计算机IP172.29.26.30NAT路由器IP地址为202.102.154.3,外部视频服务器IP地址为60.212.212.23

 

服务器开设两个线程:监听线程和数据发送线程

监听线程用于登记客户端地址,包括IP地址和端口号,然后调用AddDestination(),加入到发送线程的回话目的端链表。其监听端口设为80000

数据发送线程用于发送rtp数据和rtcp数据包。Rtp回话创建于60000端口,在rtpsock邦定端口60000rtcp邦定端口60001,由昨天得知sendsock必须邦定端口,修改rtp库,使其邦定端口59999

 

内网计算机程序,也就是客户端程序rtp回话创建于端口60000,取出其rtpsock(该端口邦定60000端口,负责接收rtp数据包)。向服务器80000端口发送请求,这代表服务器80000端口发送数据到内网计算机60000端口的通路打开,服务器取得客户端地址,写入目标地址链表。由于客户端是要接收到服务器59999端口发来的数据,于是rtpsock发送数据到服务器的59999端口,此时服务器59999端口发送数据到客户端60000端口的数据打通。这样便可以正确的传送和接收rtp数据包。

但是这时候接收不到rtcp数据包,原因是因为服务器59999端口发送到客户端60001端口的通路没有打通。利用同样的方式既可。

抱歉!评论已关闭.