Android开发Wiki进阶篇连接无线设备一使用网络服务搜索.pdfVIP

  • 1
  • 0
  • 约1.08万字
  • 约 9页
  • 2019-02-23 发布于湖北
  • 举报

Android开发Wiki进阶篇连接无线设备一使用网络服务搜索.pdf

eoe 移动开发者社区 / 原文地址: /training/connect-devices-wirelessly/nsd.html 在你的应用程序中添加网络服务发现(NSD)允许你的用户识别在本地网络中的设备以便支持 在你的应用程序中服务的请求。这将对于不同的点对点的应用程序很有用,比如文件分享和 多人玩的游戏。android 平台的NSD 的API 简化你实现这项功能所需要作出的努力。 这节课将会向你展示怎么样创建一个能够广播它的名字和连接信息给本地网络和浏览从其 他应用程序做相同的工作的应用程序。最后,这节课将会向你展示怎么样连接在其他设备上 的同一个应用程序。 在网上注册你的服务 这一步是可选的。如果你不关心在本地网络广播你的应用程序的服务,你可以跳到下一步, Discover Services on the Network. 在本地网络注册你的服务,首先创建一个NsdServiceInfo 对象。这个对象提供当在网络中 的其他设备它们决定是否连接你的服务需要的信息。 1. public void registerService (int port) { 2. // Create the NsdServiceInfo object, and populate it. 3. NsdServiceInfo serviceInfo = new NsdServiceInfo (); 4. 5. // The name is subject to change based on conflicts 6. // with other services advertised on the same network. 7. serviceInfo.setServiceName(NsdChat); 8. serviceInfo.setServiceType(_http._tcp.); 9. serviceInfo.setPort(port); 10. 11. } 这段代码把服务的名字设置为NsdChat。这个名字对于在网络上使用NSD 查找服务的设备。 注意这个名字必须在网络上是唯一的,并且android 操作系统自动解决冲突。如果在网络中 的两个设备都安装 NsdChat 的应用程序,它们中会有一个自动改变服务的名字改成就像 NsdChat (1)的名字。第二个参数设置服务的类型,决定应用程序使用哪一个端口和传输 层。语法是protocol._transportlayer 。在代码段中,服务在TCP 上使用HTTP 协议。一个 提供打印服务(例如,网络打印机)的应用程序把服务的类型设置为_ipp._tcp。 eoe 移动开发者社区 / 注意:国际地质分配机构集(IANA)中管理,授权服务发现协议的服务类型的清单,例如N SD 和Bonjour。你可以从the IANA list of service names and port numbers 下载清单。 如果你打算使用一种新的服务类型,你应该通过填写IANA Ports and Service registrati on form 储存它. 当为您的服务设置端口,避免硬编码它像这个冲突与其他应用程序。例如,假设您的应用程序 总是使用端口1337 的潜在与其他已安装的使用相同的端口应用程序冲突,。相反,使用设备 的下一个可用端口。因为这些信息通过一个服务广播被提供给其他应用程序,就没有必要使 您的应用程序使用的端口将被其他应用程序在编译时知道。相反,应用程序可以通过你的服 务广播获得此信息,就在连接到您的服务之前。如果你使用套接字,这里有通过初始化套接 字仅仅设置为0 对任何端口都可用. 1. public void initializeServerSocket() { 2. // Initialize a server socket on the next available port. 3. mServerSocket = new ServerSocket (0); 4. 5. // Store the chosen port. 6. mLocalPort = mServerSock

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档