簡體   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