Freigeben über


Netzwerkprogrammierungsschnittstelle

Eine Netzwerkprogrammierschnittstelle oder ein NPI definiert die Schnittstelle zwischen Netzwerkmodulen , die miteinander verbunden werden können. Ein Clientmodul , das als Client eines bestimmten NPI registriert ist, kann nur an Anbietermodule angefügt werden, die als Anbieter desselben NPI registriert sind. Ebenso kann ein Anbietermodul, das als Anbieter eines bestimmten NPI registriert ist, nur an Clientmodule angefügt werden, die als Clients desselben NPI registriert sind.

Jeder NPI definiert die folgenden Elemente:

  • Ein NPI-Bezeichner , der den NPI eindeutig identifiziert. Ein Netzwerkmodul gibt einen NPI-Bezeichner an, der den bestimmten NPI angibt, der unterstützt wird, wenn sich das Netzwerkmodul bei der Netzwerkmodulregistrierungsstelle (Network Module Registrar, NMR) registriert. Ein Netzwerkmodul kann mehrere NPIs unterstützen, indem es sich mehrmals bei NMR registriert, einmal für jeden von ihm unterstützten NPI. Die NMR initiiert das Anfügen eines Clientmoduls an ein Anbietermodul nur, wenn beide denselben NPI unterstützen.

  • Eine optionale Clientmerkmalestruktur , die die NPI-spezifischen Merkmale jedes Clientmoduls angibt. Solche NPI-spezifischen Merkmale können Elemente enthalten, z. B. welche Version (oder Versionen) des NPI, die ein Clientmodul unterstützt, oder welche Adressfamilie oder welches Protokoll ein Clientmodul erfordert. Ein Anbietermodul kann die Informationen verwenden, die in der Clienteigenschaftenstruktur eines Clientmoduls enthalten sind, um festzustellen, ob es an das Clientmodul angefügt wird. Wenn ein NPI keine NPI-spezifischen Clientmerkmale definiert, ist diese Struktur nicht erforderlich.

  • Eine optionale Anbietermerkmalestruktur , die die NPI-spezifischen Merkmale jedes Anbietermoduls angibt. Solche NPI-spezifischen Merkmale können Elemente wie die Version (oder Versionen) des NPI enthalten, die ein Anbietermodul unterstützt oder welche Adressfamilien oder Protokolle ein Anbietermodul unterstützt. Ein Clientmodul kann die Informationen verwenden, die in der Struktur der Klienteigenschaften eines Anbietermoduls enthalten sind, um festzustellen, ob es sich mit dem Anbietermodul verbinden wird. Wenn ein NPI keine NPI-spezifischen Anbietermerkmale definiert, ist diese Struktur nicht erforderlich.

  • Null oder mehrere Rückruffunktionen des Clientmoduls. Nachdem ein Anbietermodul erfolgreich an ein Clientmodul angefügt wurde, kann das Anbietermodul auf die Funktionalität des Clientmoduls zugreifen, indem er die Rückruffunktionen des Clientmoduls aufruft.

  • Mindestens eine oder mehrere Anbietermodulfunktionen. Nachdem ein Clientmodul erfolgreich an ein Anbietermodul angefügt wurde, kann das Clientmodul auf die Funktionalität des Anbietermoduls zugreifen, indem die Funktionen des Anbietermoduls aufgerufen werden.

  • Eine Client-Dispatch-Tabelle-Struktur, die Funktionszeiger auf die einzelnen Clientmodul-Rückruffunktionen enthält. Wenn ein NPI keine Clientmodulrückruffunktionen definiert, ist diese Struktur nicht erforderlich.

  • Eine Provider-Dispatch-Tabelle, die Funktionszeiger auf die Funktionen der einzelnen Anbietermodule enthält.

Ein Clientmodul, das einen bestimmten NPI unterstützt, verwendet die vom NPI definierten Elemente, um die Clientseite der Schnittstelle zu implementieren. Ebenso verwendet ein Anbietermodul, das einen bestimmten NPI unterstützt, die vom NPI definierten Elemente, um die Anbieterseite der Schnittstelle zu implementieren.

Alle von einem NPI definierten Elemente sind mit Ausnahme des NPI-Bezeichners für die NMR nicht sichtbar. Die NMR verwendet den NPI-Bezeichner, um zu bestimmen, welche Clientmodule an welche Anbietermodule angefügt werden sollen.