手机与PC的影音相互播放(DLNA/UPNP)
DLNA:全称是DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟), 旨在解决个人PC,消费电器,移动设备在内的无线网络和有线网络的互联互通,使得数字媒体和内容服务的无限制的共享和增长成为可能。成立于2003 年6 月24 日, 其前身是DHWG (Digital Home Working Group 数字家庭工作组),在2017年1月15日正式解散。
UPNP:全名是Universal Plug and Play,愿景就是希望任何设备只要一接上网络,所有在网络上的设备马上就能知道有新设备加入,这些设备彼此之间能互相沟通,更能直接使用或控制它,一切都不需要设定,完全的Plug and Play。
UPnP 是各种各样的智能设备、无线设备和个人电脑等实现遍布全球的对等网络连接(P2P)的结构。UPnP 是一种分布式的,开放的网络架构。UPnP 是独立的媒介。UPnP 规范基于TCP/IP协议和针对设备彼此间通讯而制订的新的Internet协议。
计算机外设的即插即用(Plug and Play(缩写PnP)),UPnP功能可以使网关或路由器的NAT模块做自动端口映射,不建议开启,需要硬件与软件同时支持,在硬件不支持的情况下,对稳定性、转发性能的影响很大。
Win7及以上系统:
- 启动相关服务
net start SSDPSRV
net start upnphost
net start WMPNetworkSvc
- 打开Windows Media Player-->媒体流-->选项-->启用媒体流。
Android手机:
- 全功能DLNA:安装MirageDLNA
- DLNA播放器:如果只是播放PC的音视频文件,建议使用MOLIPLAYER(图片看不了,还支持Samba文件)。
- DLNA服务端:安装MediaServer,【TW,图标为无线扇形,华为市场】,安装后,直接在WIN10我的电脑里出现。
- http://shouji.baidu.com/s?wd=miragedlna
- http://shouji.baidu.com/s?wd=moliplaye
- http://a.vmall.com/app/C6149945
建议
不要在无线PC上使用此功能,因为无线网络为共享型,不能全双工通信。最佳为:有线PC的服务端,无线手机的播放端。
=====================================================================
有线网络:802.3 i(10M)/u(100M)/z(1000M)/ba(40Gb/100Gb)
无线网络:802.11 a(5GHz 54M)/b(2.4GHz 11M)/g(2.4GHz 54M/108M)/n(2.4GHz 300M)/ac(5GHz 1G)/ad(60GHZ 7G,穿透力非常有限)
有线以太网设备必须采用载波侦听多路访问/冲突检测(CSMA/CD)方法来传输和接收以太网帧。
① 在共享的以太网网段上,PC以半双工模式工作,每台PC都可以先"发言",然后侦听是否同其他正在发言的设备发生冲突。很重要的是,整个检测冲突的过程是基于有线连接的最大长度,从网段的一端发送到另一端,检测到冲突之间的最大延迟是确定的。
②在全双工或交换型以太网链路上,不存在冲突或争取带宽的问题,但它们必须遵循相同的规范。例如,在全双工链路上,必须在预期的时间内发送或接收以太网帧,这要求全双工双绞线的最大长度与半双工链路相同。
虽然无线局域网也基于一组严格的标准,但无线介质本身难以控制,一般而言,当PC连接到有线网络时,与其共享网络连接的其他设备的数量是已知的,而当PC使用无线网络时,使用的传输介质为空气,由于接入层没有电缆和插口,因此,无法限制其他最终用户使用相同频率无线电波。——无线的难处本质在这里
无线局域网实际上是一种共享型网络,且争用相同频率电波的主机数量不是固定的。在无线局域网中,冲突犹如家常便饭,因为每条无线连接都是半双工模式的,IEEE 802.11 WLAN总是半双工模式的,因为传输站和接收站使用的频率相同。双方不能同时传输,否则将发生冲突。要实现全双工模式,必须在一个频率进行传输,在另一个频率进行接收,这类似于全双工以太网链路的工作原理,虽然这完全可行,但IEEE 802.11标准不允许采用全双工模式。
当多个无线工作站同时传输时,它们的信号将相互干扰,接收站收到的将是混乱的数据、噪声或错误信息。如果没有明确的方式来确定是否发生了冲突,传输站也无法知道发生了冲突,因为传输时将关闭其接收器,作为一个基本的反馈机制,每当无线工作站传输一帧后,接收工作站必须发送一个确认,确认已正确地收到该帧。——确认帧其实充当了基本的冲突检测工具,然而,它并不能预先防止冲突的发生。
IEEE 802.11标准使用一种名为载波侦听多路访问/冲突避免(CSMA/CA)的方法来避免冲突。注意,IEEE 802.3有线网络是检测冲突,而IEEE 802.11网络是尽可能避免冲突。
为实现冲突避免,要求所有工作站在传输每帧前进行侦听,当工作站有帧需要发送时,面临的将是下列情况之一:
① 没有其他设备在传输数据,工作站可立刻传输其帧,接收工作站必须发送一个确认帧,确认原始帧已在没有发生冲突的情况下到达。
② 另一台设备正在传输,工作站必须等待,等到当前帧传输完毕后,它再等待一段随机时间(这其实就体现了协议设计者的“CSMA/CA冲突避免”思想),然后传输自己的帧。
无线帧的长度不是固定的,一个工作站传输其帧时,其他工作站如何知道该帧已传输完毕,可以使用无线介质呢?显然,工作站可以进行侦听,等待静默期的到来,但这样做并非总是有效的,其他工作站也在侦听,可能同时决定开始传输。IEEE 802.11标准要求所有工作站在开始传输前等待一段时间,这段时间被称为DCF帧间间隔(DCF Interframe Space , DIFS)。
传输工作站可以在IEEE 802.11报头中包含一个持续时间值,以指出传输完当前帧所需的大概时间。持续时间值包含传输完当前帧所需要的时隙数(单位通常为毫秒),其他无线工作站必须查看持续时间值,并在考虑传输数据前等待相应的时间。由于每个侦听站在传输的帧中看到的持续时间值相同,因此它们都可能在这段时间过去后决定传输自己的帧,这可能导致冲突。所以,在实际中,除持续定时器外,每个无线工作站还必须实现一个随机后退定时器,传输帧之前,工作站必须选择一个要等待的随机时隙数,这个数字位于0和最大争用窗口值之间。——这里的基本思想不外乎是,准备传输的工作站必须等待一段随机时间,以减少试图立即传输的工作站数量。——这个过程就被称为抽象的术语“分布式协调功能(Distributed Coordination Function,DCF)”
三位无线用户都有一个帧需要发送,它们所需的时间各不相同。发生的情况如下所述。
① 用户A侦听并确定没有其他用户在传输,因此,传输自己的帧并通告持续时间。
② 用户B有一个帧需要传输,他必须等待用户A的帧传输完毕,再等待DIFS时间过去。
③ 用户B在传输前等待一段随机退避时间。
④ 在用户B等待期间,用户C有一个帧需要传输,他通过侦听发现没有人在传输,用户C等待一段随机时间,但比用户B的随机时间短。
⑤ 用户C传输一个帧,并通告其持续时间。
⑥ 用户B传输前必须等待该持续时间加上DIFS时间。
由于后退定时器是随机的,多台工作站仍可能选择相同的退避时间——看来协议设计者还是考虑到底了,因此,无法防止这些工作站同时传输数据,进而导致冲突。这样,在无线网络中将会出现传输错误,而接收站不会返回确认,为此发送站必须考虑重新发送其帧。
最后,工作站在其随机后退定时器过期后并准备传输数据时,如果发现有人正在传输,该如何办呢?它必须再等待当前正在传输的帧的持续时间、DIFS时间和随机后退时间。
手机与PC的影音相互播放(DLNA/UPNP)的更多相关文章
- 基于C/S模式的android手机与PC机通信系统的开发
原文链接: http://blog.csdn.net/nupt123456789/article/details/8213486 基于C/S模式的android手机与PC机通信系统的开发 作者:郑海波 ...
- foobar2000 iOS使用,并连接PC的歌曲进行播放
foobar2000移动版下载地址:http://mobile.foobar2000.com/ 要实现歌曲互通有两种方法,使用iOS客户端的FTP Server用PC上传歌曲到iOS手机,和在PC上使 ...
- 在thinkPHP3.2.3框架下实现手机和PC端浏览器的切换
查看thinkphp版本号方法 打开文件“根目录\ThinkPHP\ThinkPHP.php”下的文件ThinkPHP.php,在22--23行可以看到版本信息THINK_VERSION,如下图: 说 ...
- jquery 模拟 alert 手机,pc,平板 3合一
$.kw = { title : "System information", //默认标题 可修改 speed : 400, //默认速度 可修改 buttonName : &qu ...
- android手机连接PC无法正常安装驱动
工作当中我们经常会遇到Android手机连接PC的时候无法正确安装驱动,或者安装失败.当然找到正确的驱动文件时首选的解决方案,如果正确的驱动文件依旧无法安装成功我们可以打开我的电脑-->属性-- ...
- php或js判断网站访问者来自手机或者pc
php或js判断网站访问者来自手机或者pc机 2013年9月26日,在弄wtuonline的时候为了区分用户是来自手机版浏览器还是pc,针对不同平台选择不同的网站版本,最终总结如下: ...
- php或js判断网站访问者来自手机或者pc机
php或js判断网站访问者来自手机或者pc机 2013年9月26日,在弄wtuonline的时候为了区分用户是来自手机版浏览器还是pc,针对不同平台选择不同的网站版本,最终总结如下: ...
- 非堵塞socket实现android手机与PC的文件传输
项目须要是通过WIFI建立手机和PC的通信,然后自己定义一个简单的协议对要传输的文件进行校验,传输的文件是2张3M的图片,要求考虑网络中断情况处理. 我这里採用的是非堵塞socket来实现的,之前查过 ...
- Windows 之 手机访问 PC 端本地部署的站点
测试网页在手机上的显示工具我们可以使用谷歌内核的浏览器,打开开发者工具(F12),在device那里选择设备,然后刷新来查看网页在手机上的显示效果. 但毕竟是模拟的,如果想要在真机上调试该怎么办呢. ...
随机推荐
- mongoDB安装windows 64 bit
mongoDB安装windows 64 bit https://www.mongodb.org/downloads?_ga=1.207888916.746558625.1410501054 下载, ...
- dfs——n的全排列(回溯)
#include <iostream> #include <cstring> #include <string> #include <map> #inc ...
- Java设计模式(一)
1.什么是设计模式? 在软件工程中,设计模式是对软件设计中普遍存在的各种问题,所提出的 解决方案. 换句话说,设计模式是一套被反复使用.多数人知晓的.经过分类的.代码设计的 经验的总结.使用设计模式是 ...
- HDU 2023 求平均成绩
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Practice HDU ...
- EasyUI datagrid 选择单元格 出现文本框 修改 四
@disabled = "disabled", 只读属性 数据初始化 public JsonResult RateList(string dispatch_number, stri ...
- JAVA的初始化顺序:
JAVA的初始化顺序: 父类的静态成员初始化>父类的静态代码块>子类的静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造 ...
- 企业wiki之confluence安装部署(linux)及其破解
系统环境(虚拟机) centos6.5 2G运行内存,30g硬盘,cpu最好也分配两个或多个,因为我在安装过程中发现很卡,cpu占用率几乎占满 需要用到的安装包和文件可以在这里找 链接:https ...
- 这样学习C语言最有效(高级技巧)——共勉
第一章 学习C语言的起跑线 1.1 C语言已死? 本资料描述的是使用C语言的高级技巧,力求将你的C语言能力由"基础"提升为"高级".但是学习态度胜过学习方法,在 ...
- getpwnam,getgrnam,getpwent,crypt等函数
[root@bogon code]# cat a.c #include<stdio.h> #include<pwd.h> int main() { struct passwd ...
- svelte 构建快速web 应用的工具
svelte 和angular vue reat 类似,都是方便快速的创建用户界面,最大不同的地方是svelte 转换你的app 是在构建时,而不是运行时,所以好处就是不用花费太多的操作在,框架的 抽 ...