c# – 网络服务发现

我正在寻找为
Android(客户端)和服务器(Windows)制作客户端/服务器应用程序.

该应用程序的目的是从服务器(PC),它允许用户扫描网络以查找与我的C#应用​​程序兼容的设备,然后可以向客户端和服务器发送消息.

我一直在阅读Android文档,并在android中找到了网络发现服务
 在http://developer.android.com/training/connect-devices-wirelessly/nsd.html.

我对它的工作原理的理解是,android应用程序发送一个广播消息,其中包含其他设备可以通过它连接的服务名称,IP和端口号.因此,在我的情况下,C#将接收此广播消息并确定该服务是否是我的C#应用​​程序可以支持的内容,如果是,则建立与Android设备的套接字连接以及来自广播的详细信息.

正如我所说,我已经找到了用于注册服务的android开发人员教程,但我找不到任何有关C#如何找到此广播消息并对其采取行动的信息.

你可能拥有的任何帮助或教程都会很棒,因为Google没有找到任何东西,我不完全确定我是否正在寻找正确的东西.

谢谢

最佳答案 @greenapps是对的,服务器应该播出.因此,请使用C#服务广播的网络服务发现到
discover a service.

Android的NsdManager类有一个教程可以做到这一点.它使用“基于DNS的服务发现”,官方规范列于here.我相信这是DNS服务发现(DNS-SD)标准.

您的服务器必须广播.您应该能够使用this question执行此操作,其中包括DNS SRV,DNS-SD基础之一.

当然,C#广播服务类型必须与Android代码中的SERVICE_TYPE字符串参数匹配:

mNsdManager.discoverServices(
    SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
点赞