Freigeben über


Semantische Unterschiede zwischen Multipoint-Sockets und regulären Sockets im SPI

In der Steuerungsebene gibt es einige signifikante semantische Unterschiede zwischen einem c_root Socket und einer normalen Punkt-zu-Punkt-Steckdose:

  • Der c_root Socket kann in WSPJoinLeaf- verwendet werden, um ein neues Blatt zu verbinden.
  • Das Platzieren eines c_root Sockets in den Überwachungsmodus (durch Aufrufen von WSPListen) schließt nicht aus, dass der c_root Socket in einem Aufruf von WSPJoinLeaf verwendet wird, um ein neues Blatt hinzuzufügen, oder um Mehrpunktdaten zu senden und zu empfangen.
  • Das Schließen eines c_root Sockets bewirkt, dass alle zugeordneten c_leaf Sockets FD_CLOSE Benachrichtigung erhalten.

Es gibt keine semantischen Unterschiede zwischen einem c_leaf Socket und einem regulären Socket in der Steuerebene, mit der Ausnahme, dass der c_leaf Socket in WSPJoinLeafverwendet werden kann und die Verwendung von c_leaf Socket in WSPListen angibt, dass nur Mehrpunktverbindungsanforderungen akzeptiert werden sollten.

In der Datenebene sind die semantischen Unterschiede zwischen dem d_root Socket und einem regulären Punkt-zu-Punkt-Socket

  • Die auf dem d_root Socket gesendeten Daten werden an alle Blätter in derselben Mehrpunktsitzung übermittelt.
  • Die auf dem d_root Socket empfangenen Daten können von einem der Blätter stammen.

Der d_leaf Socket in der gestammten Datenebene weist keinen semantischen Unterschied vom regulären Socket auf, aber in der nicht entstammten Datenebene werden die auf dem d_leaf Socket gesendeten Daten an alle anderen Blattknoten gesendet, und die empfangenen Daten können von einem der anderen Blattknoten stammen. Wie bereits erwähnt, sind die Informationen darüber, ob sich der d_leaf Socket in einer stamm- oder nicht entstammten Datenebene befindet, in der entsprechenden WSAPROTOCOL_INFO Struktur für den Socket enthalten.