gpt4 book ai didi

c# - 网络服务发现

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:22 25 4
gpt4 key购买 nike

我正在考虑为 Android(客户端)和服务器(Windows)制作客户端/服务器应用程序。

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

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

我对它的工作原理的理解是,android 应用程序发送一个广播消息,其中包含其他设备可以连接到它的服务名称、IP 和端口号。因此,在我的例子中,C# 将接收此广播消息并确定该服务是否是我的 C# 应用程序可以支持的,如果是,则使用广播中的详细信息建立与 android 设备的套接字连接。

正如我所说,我已经找到了用于注册该服务的 Android 开发人员教程,但我找不到有关 C# 如何找到此广播消息并对其进行操作的任何内容。

最佳答案

@greenapps 是对的,服务器应该广播。因此,使用网络服务发现来discover a service由您的 C# 服务广播。

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);

关于c# - 网络服务发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24188803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com