繁体   English   中英

如何通过扫描LAN C#自动发现Web服务

[英]How to automatically discover Web Service by scanning LAN C#

我正在用C#消费Web服务(用Java编写)。 Web服务可在LAN中使用,但在编译时我不知道服务器的地址。 我需要扫描网络以找到托管Web服务的计算机的IP地址。 我确实知道港口。

目前,我有以下代码,应该为我提供所有活动IP地址的列表,然后我计划尝试查找写入端口是否打开,并且一旦找到一台正确的计算机,端口是开放的,我会知道服务器的IP地址,我在想正确的方法吗?

List<IPAddress> ipList = new List<IPAddress>();
IPGlobalProperties network = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] connections = network.GetActiveTcpConnections();

foreach (TcpConnectionInformation ipEnds in connections)
{
    ipList.Add(ipEnds.LocalEndPoint.Address);
    Console.WriteLine(ipEnds.LocalEndPoint.Address.ToString());
}

Web服务必须定义您发现的方式,例如,您使用特定的肥皂消息引发广播,以这种方式,与该肥皂消息匹配的所有服务都必须响应您。 您还可以使用DiscoveryClient类(C#)来发现服务,它允许您定义范围和其他规范。

您的C#应用​​程序是否在静态位置使用数据?

在构建时,您可以修改Java应用程序以访问使用服务以提供准确的位置。 这样可以减少网络上的额外噪音。 这还应减少您的应用程序尝试连接到指定端口上的每个IP地址时挂起的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM