如何判断其他应用是否已注册IPC Remoting频道?

sni*_*ker 5 c# remoting channel

所以我有一个提供.NET API的应用程序.他们的API库通过.NET远程调用与他们的主应用程序通信.要使用API​​,应用程序必须已启动并运行.

所以,我有一个实例,我需要以编程方式启动应用程序,然后实例化一个API对象,它试图打开一个IPC远程通道到主应用程序.问题是,在我开始这个过程之后,启动和应用程序注册通道之间会有几秒钟的时间.如果我在注册频道之前尝试实例化一个API对象,它就会发出异常.

我对.NET远程处理知之甚少并没有帮助.

如果他们的应用程序已经注册了通信通道,我如何从我的应用程序确定使用他们的API,所以我知道可以实例化他们的API对象?

Abh*_*tel 2

尝试这个:

using System.Net.NetworkInformation;
using System.Net;
 private static bool IsPortAvailable(int port)
 {
        IPGlobalProperties globalProperties = IPGlobalProperties.GetIPGlobalProperties();
        IPEndPoint[] activeListeners = globalProperties.GetActiveTcpListeners();
        if (activeListeners.Any(conn => conn.Port == port))
        {
            return true;
        }
        return false;
 }
Run Code Online (Sandbox Code Playgroud)

传入端口,您应该得到一个值,指示该端口上是否有侦听器。希望这有帮助

  • 问题是..它不是一个端口。它是 IPC 远程处理,因此有端口“名称”,但没有实际端口。 (2认同)