Okay, ich erweitere den Flexlm-Vendor-Daemon meines Unternehmens, damit er für Client-Anwendungen ein wenig aufschlussreicher ist.
Ich muss herausfinden können, welchen Port lmgrd überwacht, bevor Clients eine Verbindung herstellen. Die API-Dokumentation scheint eher unfruchtbar zu sein, und ich glaube, dass sie den Großteil ihres Codes in einer kompilierten Form behalten, so dass ich nicht einfach auf ihre Quelle schauen kann.
Ist es möglich, die beeindruckende Leistung der Windows-API aufzurufen, um herauszufinden, welche Ports ein bestimmter Prozess verwendet? Wenn Process Explorer von Sysinternals es tun kann, sollte ich in der Lage sein, richtig? Hat jemand dafür Beispielcode?
Es muss Windows XP und höher unterstützen, da viele unserer Kunden noch nicht aktualisiert haben.
Bearbeiten: Ich sollte beachten, dass es FLEX unterstützt, den Port aus der Lizenzdatei zu ziehen. Ich habe den Code nicht vor mir, aber wissen Sie, dass dies nicht der beste Weg ist, herauszufinden, welche Ports Ihr Vendor-Daemon / lmgrd ausführt.
GetTcpTable2 - siehe EDIT
Die GetTcpTable-Funktion ruft die IPv4-TCP-Verbindungstabelle ab.
Dies wird eine MIB_TCPTABLE-Struktur ausfüllen.
%Vor%Und jetzt die MIB_TCPROW
%Vor%EDIT WICHTIG :
Sie müssen GetTcpTable2 verwenden, um auch die entsprechende PID zu erhalten.
%Vor%dwOwningPid
Hier ist der Code, mit dem ich endete, für jeden, der dieses Problem nach mir hat
%Vor%