所以我有一个具有 .NET API 可用的应用程序。他们的 API 库通过 .NET 远程调用与主应用程序进行通信。为了使用 API,应用程序必须已启动并运行。
因此,我有一个实例,需要以编程方式启动应用程序,然后实例化一个 API 对象,该对象尝试打开主应用程序的 IPC 远程处理通道。问题是,在我启动进程后,启动和应用程序注册通道之间有几秒钟的时间。如果我尝试在注册通道之前实例化 API 对象,它就会消失。
我对 .NET 远程处理知之甚少,这也无济于事。
如何从使用其 API 的我的应用程序确定其应用程序是否已注册通信通道,以便我知道可以实例化其 API 对象?
尝试这个:
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;
}
传入端口,您应该得到一个值,指示该端口上是否有侦听器。希望这有帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)