upnp协议不可用,udp协议

  upnp协议不可用,udp协议

  其他文章通用即插即用和简单服务发现协议之一

  libupnp的例子写得不是很有条理,但是很容易修改,是很好的入门

  1、SampleUtil_PrintEvent()这个函数是打印出所有的控制点,可以注释掉,除了显示是没有用处的,重点函数是TvCtrlPointCallbackEventHandler回调

  2、修改代码里面的例子tv_ctrlpt_main.cpp重点关注,这是一个控制点的编写,编写家庭娱乐网络投屏设备需要修改很多名称参数

  RC=TvCtrlPointStart(Linux _ print,NULL,0);这句代码是整个入口,需要关注,一步一步调试进去,就明白通用即插即用协议了,其他基础请看我的其他文章。

  上图是修改过后打印搜索到的设备,本图是搜索到了穆菡设备

  上图是网络封包分析抓返回包,实际上用户数据报协议里面包含的是超文本传送协议(超文本传输协议的缩写)协议。

  抓包使用语法用户数据报协议和主机xxxx.xxxx.xxx.xxx,而不是主机192.168.1.255

  因为广播地址有很多干扰包,所以去掉广播包

  dlnap这是大蟒写的一个投屏,写得言简意赅,调试下来,技巧十足,作者很有功力

  python dl nap。py-IP 192。168 .1 .144-打http://127。0 .0 .1:8000/a . MP4

  python dl nap。py-IP 192。168 .1 .144-停止

  事实上,投屏是分为两步走的1、发送命令让大屏播放mp4文件邮政/av运输/CFF 47 b 40-2475-7ff 1-7459-318 EC 45 c 9853/控制。XML HTTP/1.1用户代理:dl nap . py/0.15接受:*/*内容类型:text/XML;charset= utf-8 主机:192。168 .1 .144:1551 content-Length:504 soap action: urn:schemas-UPnP-org:service:av transport:1 # SetAVTransportURI 连接:close?可扩展标记语言版本=1.0 编码=utf-8 ?s:Envelope xmlns:s= http://模式。XML soap。org/soap/Envelope/ s:encoding style= http://schema。XML soap。org/soap/encoding/ s:Body u:SetAVTransportURI xmlns:u= urn:schemas-UPnP-org:service:av transport:1 实例id 0/instanceidcurrenturi http://127。0 .0 .1:8000/a . MP4/currenturi currenturi元数据播放邮政/av运输/CFF 47 b 40-2475-7ff 1-7459-318 EC 45 c 9853/控制。XML HTTP/1.1用户代理:dl nap . py/0.15接受:*/*内容类型:text/XML;charset=utf-8 主机:192 .168 .1 .144:1551内容长度:401 soap操作:“urn:schemas-UPnP-org:service:av transport:1 # Play”连接:关闭?可扩展标记语言版本=1.0 编码=utf-8 ?s:Envelope xmlns:s= http://模式。XML soap。org/soap/Envelope/ s:encoding style= http://schema。XML soap。org/soap/encoding/ s:Body u:Play xmlns:u= urn:schemas-UPnP-org:service:av transport:1 实例id 0/instance id Speed 1/Speed/u:Play/s:Body/s:Envelope以上理解了,除了网络的基本功力,还要有超文本传送协议(超文本传输协议的缩写)协议的理解以及可扩展标记语言解析等等,肥皂协议的理解,dlna大屏投放基本就能做了。

upnp协议不可用,udp协议