Hin und wieder stellt jemand die folgende Frage: „Wir haben unseren Anwendungsport zur Dienstdatei hinzugefügt, und jetzt wird er von einer anderen Anwendung verwendet – warum?“ Die Antwort lautet, dass die Dienstdatei keine Portnummern reserviert. Die Dienstdatei existiert, damit Anwendungen die Funktion „getservbyname“ aufrufen können, um die mit einem Dienst verbundene Portnummer zu finden, oder die Funktion „getservbyport“, um den Namen eines mit einer Portnummer verbundenen Dienstes zu finden. Es gibt nichts, was zwei verschiedene Dienste daran hindert, derselben Portnummer zugeordnet zu werden, obwohl die Funktion „getservbyport“ nur den ersten zurückgibt. Es gibt auch keine Anforderung, dass eine Anwendung „getservbyname“ aufrufen muss, um herauszufinden, welchen Port sie verwenden soll. Ein Anwendungsentwickler kann einfach eine Portnummer fest codieren oder die Eingabe als Parameter zulassen.
- Führen Sie den Befehl aus.
“netstat -numeric -all_sockets -PCB_addr”und identifizieren Sie den Eindringling. In diesem Fall interessiert mich die Portnummer 13592.
netstat -numeric -all_sockets -PCB_addrActive connections (including servers)PCB Proto Recv-Q Send-Q Local Address Foreign Address(state). . . 8e3aa300 tcp 0 0 *:13592 *:* LISTEN. . .ready 13:50:12- Führen Sie den Befehl aus.
“analyze_system -request_line 'match dv; dump_onetcb 8e3aa300' -quit”
OpenVOS Release 17.0.1aj, analyze_system Release 17.0.1ajCurrent process is 664, ptep 8E0EE800, Noah_Davids.CAC sth_dvtx = 121 (stcp.m16_202)- Führen Sie den Befehl aus.
“who_locked #stcp.m16_202”um festzustellen, welcher Prozess das Gerät verwendet.
stcp.m16_202: Object is write locked by Barney_Rubble.Dev (login) on module%vs#m1 executing stcp_calls.pm.
