[英]Network Service Discovery
我正在寻找为Android(客户端)和服务器(Windows)制作客户端/服务器应用程序。
该应用程序的目的是从服务器(PC),它允许用户扫描网络以查找与我的C#应用程序兼容的设备,然后可以向客户端和服务器发送消息。
我一直在阅读Android文档,并在http://developer.android.com/training/connect-devices-wirelessly/nsd.html上找到了android中的网络发现服务。
我对它的工作原理的理解是,android应用程序发送一个广播消息,其中包含其他设备可以通过它连接的服务名称,IP和端口号。 因此,在我的情况下,C#将接收此广播消息并确定该服务是否是我的C#应用程序可以支持的内容,如果是,则建立与Android设备的套接字连接以及来自广播的详细信息。
正如我所说,我已经找到了用于注册服务的android开发人员教程,但我找不到任何有关C#如何找到此广播消息并对其采取行动的信息。
你可能拥有的任何帮助或教程都会很棒,因为Google没有找到任何东西,我不完全确定我是否正在寻找正确的东西。
谢谢
@greenapps是对的,服务器应该播出。 因此,使用网络服务发现来发现您的C#服务正在广播的服务。
Android的NsdManager类有一个实现此目的的教程。 它的工作原理采用“基于DNS服务发现”,其中列出的官方规格在这里 。 我相信这是DNS服务发现(DNS-SD)标准。
您的服务器必须广播。 您应该可以使用此问题来完成此操作, 该问题涵盖DNS SRV(DNS-SD基础之一)。
当然,C#广播服务类型必须与Android代码中的SERVICE_TYPE字符串参数匹配:
mNsdManager.discoverServices(
SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
这可能会有所帮助: http : //justanapplication.wordpress.com/2013/11/20/service-discovery-in-android-and-ios-part-eight-ios-take-four/
我用了一次,前几页列出了如何从Android应用程序内的DNS发现服务接收回调,就像greenapps建议的那样。 虽然它可能不是您使用的确切方法,因为您的方法只能找到兼容的设备; 这至少可能是一个起点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.