设备互联 (二) p2p连接

        安卓设备之间的投屏互联,为了便捷使用无线连接,为了低延时用udp进行数据传输。因为短距离的数据传输,如果使用TCP进行音视频数据传输,容易出现视频数据堆积、音频数据卡顿等问题。

       wifidisplay 的连接考虑的是整个安卓平台设备,所以p2p连接过程是走标准的p2p流程:p2p设备搜索、主从设备协商、连接过程。对p2p整个流程有兴趣的小伙伴可以跟下看下这几篇p2p的文章很详细:https://www.jianshu.com/p/38da33064659 Android-内功篇-WifiP2p-WifiP2pService的启动以及P2P的连接_ZWAlert的博客-CSDN博客
谈谈对WiFi P2P的理解_SKY.D的博客-CSDN博客_p2p wifi

走标准的p2p协商有两个问题:(1)主从关系可能协商失败,因为可能协商的等级相同;(2)p2p协商组群,默认走2.4G 通道。问题1会出现 wifidisplay连接不上;问题2 是限制了板子传输能力,现在很多设备都是带双天线,支持5G通道,如果限制在2.4G,就限制了传输能力,抗干扰能力也较弱。所以在定制内部互联协议时,为了快速连接,通过其它方式获取到mac地址,例如通过蓝牙交互、通过NFC、通过二维码,快速获取mac,进行组网。如下代码是简单的创建p2p GO,设置设置为5G传输通道,GO的创建要在要在通道设置之前,否则会设置失败。另外如果要设置成5G 通道,需要硬件支持,如果设置失败,先确认下硬件设备是否支持

        wifiP2pManager.createGroup(channel, new WifiP2pManager.ActionListener() {
            @Override
            public void onSuccess() {

            }

            @Override
            public void onFailure(int reason) {
            
           }
        }    
                WifiP2pConfig config = new WifiP2pConfig.Builder().setNetworkName("DIRECT-sink")
                        .setPassphrase("passphrase")
                        .enablePersistentMode(false)
                        .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ)
                        .build();

                wifiP2pManager.createGroup(channel, config, new WifiP2pManager.ActionListener() {
                    @Override
                    public void onSuccess() {
                        dismissLoadingDialog();
                        showToast("onSuccess");
                    }

                    @Override
                    public void onFailure(int reason) {
                        dismissLoadingDialog();
                        showToast("onFailure");
                    }
                });

获取mac后进行连接,连接代码如下

        WifiP2pConfig config = new WifiP2pConfig();
        if (config.deviceAddress != null && mWifiP2pDevice != null) {
            config.deviceAddress = mac;
            config.wps.setup = WpsInfo.PBC;
            wifiP2pManager.connect(channel, config, new WifiP2pManager.ActionListener() {
                @Override
                public void onSuccess() {
                }

                @Override
                public void onFailure(int reason) {
                }
            });
        }

这样最简单的p2连接就完成了。

有些同硬件相关的是在性能前期评估时时需要确认的,所用的平台是单天线还是双天线,5G、2.4G对应的带宽是多少,这些都会直接影响用户的体验效果。如果只有单天线,p2p跟AP有个占比会有数据接收的时间切换,这样数据传输就容易出现较大的抖动,对延时、画面流畅、音频是否卡顿都会有较大的影响。

当然在获取mac过程都需要先通过各种方式的认证,毕竟手机涉及各种隐私,需要保证隐私安全。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows 安装版 1.5.0 beta 大小:4.4MB 更新:2014-12-20 XP/Vista/Win7/Win8 自同步是一款由国内创业团队推出的局域网P2P免费文件同步工具。处在同一个局域网下的多台电脑,可通过自同步来建立电脑里文件夹之间的同步关系,做到文件夹中文件的数量、内容相一致,并且不需要云和外网。此外,自同步特有的密钥加密更保证了数据的安全性。并且,其特有的分享功能又可以做到轻轻松松将同步目录分享给周围的朋友们。 软件特点 1. 无需网盘,局域同步 与市面上流行的网盘不同,自同步不需要您的设备时时刻刻连接互联网完成文件同步工作,而只需要在同一个局域网内就能完成文件同步工作。 2. 实时同步,多台互联 处于同步中的目录,只要其中一个目录发生变化,如文件/目录添加、修改、删除等操作,那么与该目录建立同步关系的其它目录也会迅速反应,进行相应的修改,保持与原目录的文件一致;此外,只需将文件放到同步目录,程序将自动上传这些文件,同时其它电脑登陆自同步时自动下载到新电脑,实现多台电脑的文件同步。 3. 目录分享,轻松同步 同步目录分享功能,可以轻松将同步目录分享给周围的朋友(无需同步口令相同)。 4. 密钥加密,保护数据 在局域网内采用AES加密方式传输数据并建立密钥,防止处于同一局域网内的非法设备窃取数据。 5. 优化传输,极速速度 千兆路由的局域网环境下传输速度最高可达70MB/s,同步过程犹如硬盘间的复制粘贴一样方便快捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值