De acuerdo, estoy ampliando el daemon proveedor de flexlm de mi empresa para que sea un poco más revelador para las aplicaciones cliente.Encontrar puertos tcp utilizados por la aplicación
Necesito poder averiguar qué puerto está escuchando lmgrd antes de que los clientes se conecten. La documentación de la API parece ser bastante estéril, y creo que conservan la mayor parte de su código en forma compilada, por lo que no puedo mirar su fuente.
¿Es posible recurrir al asombroso poder de la API de Windows para averiguar qué puertos está usando un proceso en particular? Si Process Explorer de sysinternals puede hacerlo, ¿debería poder hacerlo bien? ¿Alguien tiene código de muestra para esto?
Necesita ser compatible con Windows XP o superior ya que muchos de nuestros clientes aún no se han actualizado.
Edit: Debo notar que resulta que FLEX tiene soporte para extraer el puerto del archivo de licencia. No tengo el código en frente de mí, pero sé que esta no es la mejor manera de averiguar qué puertos está ejecutando el daemon/lmgrd de tu proveedor.
mierda. No se puede hacer. Parece que la función GetTcpTable2 es una función Vista y superior. Debería haber especificado que debería funcionar con Windows XP como mínimo ya que muchos de nuestros clientes aún no se han actualizado. Actualizaré mi publicación original. Excelente hallazgo, debo decir. – RandomInsano
Entonces ... parece que la versión más cercana de Windows XP es AllocateAndGetTcpExTableFromStack http://msdn.microsoft.com/en-us/library/aa365804(v=vs.85).aspx – RandomInsano
Las funciones GetTcpTable o GetExtendedTcpTable deberían se utilizará para recuperar la tabla de conexión TCP en lugar de utilizar la función AllocateAndGetTcpExTableFromStack. Nota La función AllocateAndGetTcpExTableFromStack está en desuso y no es compatible con Windows Vista y posterior.En el Kit de desarrollo de software de Microsoft Windows (SDK) lanzado para Windows Vista y posterior, el prototipo de función para AllocateAndGetTcpExTableFromStack aún se define en el archivo de encabezado Iphlpapi.h para soporte continuo en Windows Server 2003 y Windows XP. – flumpb