使用NSD连接网络设备

本文介绍了如何利用Android的Network Service Discovery (NSD) 和WIFI Direct创建peer-to-peer连接,包括在网络注册服务、搜索服务以及连接到网络上的服务。通过NSD,应用可以发现并连接本地网络中的其他设备,适用于文件共享、多人游戏等场景。
摘要由CSDN通过智能技术生成

链接无线设备

    如何使用Network Service Discovery和WIFI Direct找到并连接本地设备,来创建peer-to-peer连接。

    同与云进行通信一样,Android无线APIs也能启用同同一本地网的其它的设备的通信,甚至不在网络但物理上接近的设备。NSD(Network Service Discovery)通过允许应用查找附近运行能与之通信的服务的设备来提供这个功能。将这个功能集成到你的应用中能帮你提供更加丰富的功能,例如,在同一间屋子中打游戏,从已启用NSD的webcam上拉取图片,或远程登录同一网络的其它的机器。

使用Network Service Discovery(网络服务搜索)

    添加NSD到你的应用会允许用户标识本地网络的其它设备,这个本地网络应支持你应用请求的服务。这对一些peer-to-peer应用例如文件共享或多人游戏是相当有用的。Android的NSD API为你实现这个功能而简化了必要的步骤。

    这节课教会你如何构建一个应用,这个应用能广播它的名字和连接信息到本地网上,并且也能扫描其它应用提供的相同的信息。最后,这节课会为你展示如何链接到运行在其它设备的同一应用上。

在网络上注册你的服务

    注意:这步是可选的。如果你不想广播你应用的服务到本地网上,你可以向前跳到下一节,在网络上搜索服务

    为了在本地网上注册你的服务,首先要创建NsdServiceInfo对象。当网络上其它设备决定连接到你的服务时,这个对象提供了它们使用的信息。

public void registerService(intport) {
   // Create the NsdServiceInfo object, and populate it.
   NsdServiceInfo serviceInfo  = newNsdServiceInfo();
 
   // The name is subject to change based on conflicts
   // with other services advertised on the same network.
   serviceInfo.setServiceName("NsdChat");
   serviceInfo.setServiceType("_http._tcp.");
   serviceInfo.setPort(port);
   ....
}

    这个代码段设置服务的名称为“NsdChat”。这个名称对网络上任何使用Nsd搜索本地服务设备都是可见的。对于网络上的任何服务来说,这个名称必须是唯一的,并且Android会自动处理这个冲突。如果网络上的两个设备都有NsdChat应用被安装,它们当中的一个服务名称会自动被修改,例如“NsdChat(1)”。

    第二个参数设置服务类型,指定了应用使用协议和传输层。语法是“_<protocol>._<transportlayer>”。在这个代码段中,这个服务使用HTTP协议运行在TCP上。一个提供打印的服务(例如,网络打印机)应将网络类型设置为“_ipp._tcp”。

    注意:互联网编号分配机构(IANA)管理统一的、权威的由服务搜索协议如NSD和Bonjour使用的服务类型清

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值