实验项目:
在外网通过http去访问一个内网的设备上的多媒体文件。
实验准备:
2台电脑分别做服务端和客户端:
服务端 - ubuntu 22.04,安装apache-server,用以模拟多媒体服务器
客户端 - windows,网页浏览器
实验步骤:
服务端:
1,服务端电脑先安装http-server。
sudo apt-get install apache2
2,服务端开启Tunnel Server。
demo可以参考:SDK目录/Sample/Linux/Sample_P2PTunnelAPIs
客户端:
1,客户端先安装xftp软件。
略
2,客户端启动Tunnel Agent。
流程可以才参考:基于P2PTunnelAPIs和TCPIP协议开发NAS(或者摄像头)-APP端
demo可以参考:SDK目录/Sample/Windows/Sample_P2PTunnel (也可以联系我们索要已经编译好的客户端)
假设上面的流程已经跑通,如果通过xftp访问到我们的服务端呢?
我们知道http默认是使用80作为端口的,通常我们可以在局域网内通过局域网IP+80端口(比如http://192.168.1.100/html)去访问一个网站;但是在外网的情况下,我们已经无法再通过局域网IP去访问服务端了。
那我们需要怎么去设定参数呢?
其实非常简单,只需要把局域网IP换成127.0.0.1,端口换成客户端demo里面映射时的本地端口即可。
本程序我们使用10002端口去映射http server的80端口:
打开网页浏览器,地址输入:http://127.0.0.1:10002/html,回车:

也可以打开流媒体目录:http://127.0.0.1:10002/myubuntu

点击mp4文件播放:

Tips:
使用http、ftp、rtsp+P2PTunnelAPIs的时候,对接方法跟上面的方法基本一致,设备端基本不需改动,只需要把P2PTunnelServer启动;而APP端在启动P2PTunnelAgent后,在自己的程序里面,把IP换成127.0.0.1,端口换成agent里面映射的本地端口就行了!