3

我想使用 WCF 创建一个客户端和一个服务器程序。它们之间的通信将是 TCP。客户端将是一个 Windows 窗体,可以在其中插入主机名,然后它将列出该机器上运行的所有服务器。

有没有办法做到这一点?即浏览机器主机中的所有WCF服务?

4

2 回答 2

4

WCF 发现 - http://msdn.microsoft.com/en-us/library/dd456782.aspx

Windows Communication Foundation (WCF) 支持使用 WS-Discovery 协议以可互操作的方式在运行时发现服务。WCF 服务可以使用多播消息或发现代理服务器向网络宣布它们的可用性。客户端应用程序可以搜索网络或发现代理服务器以查找满足一组标准的服务。

如何:以编程方式向 WCF 服务和客户端添加可发现性 - http://msdn.microsoft.com/en-us/library/dd456783.aspx

于 2013-03-03T05:37:56.030 回答
0

没有自动的方法可以做到这一点。多年来出现了各种目录服务协议,但它们从未真正流行起来。总体上取得最大成功的一个被称为Multicast DNS 或 zeroconf。但是 Windows API 不能很好地支持它。Apple 以 Bonjour 的名义支持它,Linux 以 Avahi 的名义支持它。

最接近的 Windows 等价物是 UPnP SSDP,但在发现了一些广为人知的安全漏洞后,微软基本上放弃了对它的支持。有一个 IPv6 粗略的等价物,称为 PNRP(对等名称解析协议),但它也基本上不再使用。

因此,实际上您的选择是找到适用于 Windows 的 mDns 库或编写自己的库。

于 2013-03-03T02:58:31.020 回答