Windows Sockets: Hintergrund
In diesem Artikel werden die Art und Zweck der Windows Sockets.Der Artikel auch:
Definiert den Begriff "Socket".
Beschreibt den SOCKEThandledatentyp.
Beschreibt Verwendung für Sockets.
Die Windows Socket-Spezifikation definiert eine Binärdatei-kompatible Netzwerkprogrammierungsschnittstelle für Microsoft Windows.Windows Sockets basieren auf der UNIX-Socketimplementierung im Berkeley Software Distribution (Bd, Version 4.3) des Universität von Kalifornien, Berkeley.Die Spezifikation umfasst die Bd-Formatsocketroutinen und Erweiterungen, die auf Windows spezifisch sind.Verwenden von Windows Socket-Erlaubnis, die Anwendung über ein Netzwerk zu kommunizieren, das an die Windows Sockets API-Satz entspricht.Auf Win32 stellen Windows Sockets für Threadsicherheit bereit.
Viele Netzwerksoftwareanbieter unterstützen Windows Sockets unter Netzwerkprotokolle einschließlich Transmission Control Protocol/Internet Protocol (TCP/IP), Xerox Network System (XNS), digital Equipment Corporations DECnet-Protokoll, das Internet-Paket Exchange Novell Corporations/gepacktes Exchange (IPX/SPX) und andere sequenziell.Obwohl die vorhandene Windows Socket-Spezifikation die Socketabstraktion für TCP/IP definiert, kann jedes Netzwerkprotokoll mit Windows Sockets ausrichten, indem es eine eigene Version der DLL (Dynamic Link Library) dieser implementiert Windows Sockets angibt.Beispiele für den kommerziellen Anwendungen, die mit Windows Sockets geschrieben werden, enthalten X Windows-Server, Terminalemulatoren und E-Mail-Systeme.
Hinweis |
---|
Der Zweck der Windows Sockets ist, das zugrunde liegende Netzwerk weg zu extrahieren, damit Sie nicht über dieses Netzwerk früher unterlaufen sind sein müssen und damit die Anwendung auf jedes Netzwerk ausgeführt werden kann, die Sockets unterstützt.Daher werden diese Dokumentation nicht die Details von Netzwerkprotokollen. |
Die Microsoft Foundation Class-Bibliothek " (MFC-Bibliothek) unterstützt Programmierung mit Windows Sockets API, indem sie zwei Klassen angibt.Eine dieser Klassen, CSocket, bietet eine hohe Abstraktionsebene, um die Netzwerkkommunikationsprogrammierung zu vereinfachen.
Die Windows Sockets Spezifikation, Windows Sockets: Eine geöffnete Schnittstelle für Netzwerk-Computer unter Microsoft Windows, jetzt mit Version 1.1, wurde als offener Netzwerkfunktionsstandard aus einer großen Gruppe Einzelpersonen und private Funktionen in der TCP/IP-Community entwickelt und ist nicht zur Verwendung verfügbar.Das Socketprogrammiermodell unterstützt eine "Kommunikationsdomäne" Nur, mit der Internetprotokoll-Suite.Die Angabe ist in Windows SDK verfügbar.
Tipp |
---|
Da die Sockets Internetprotokoll-Suite verwenden, werden die bevorzugte Route für Anwendungen, die unterstützen Internet-Kommunikation auf der "Datenautobahn." |
Definition eines Sockets
Ein Socket ist ein Kommunikationsendpunkt - ein Objekt, durch das eine Windows Socket-Anwendung Pakete Daten über ein Netzwerk sendet oder empfängt.Ein Socket hat einen Typ und mit einem laufenden Prozess zugeordnet, und er kann einen Namen.Derzeit der Sockets Daten im Allgemeinen nur mit anderen Sockets in derselben "Kommunikationsdomäne" verwendet, die die Internetprotokoll-Suite.
Beide Arten Sockets bidirektional sind; Sie sind Daten, die in beiden Richtungen gleichzeitig übermittelt werden können (Vollduplex).
Zwei Sockettypen sind verfügbar:
Streamsockets
Streamsockets stellen für einen Datenfluss ohne Rekordgrenzen bereit: ein Stream von Bytes.Streams werden, ordnungsgemäß zu liefernden garantiert und sequenziell geordnet werden und unduplicated.
Datagrammsockets
Datagrammsockets unterstützen einen Datensatz-ausgerichteten Datenfluss, der nicht zwangsläufig zu liefernden und nicht werden sequenziell geordnet werden, wie gesendet oder unduplicated.
"Ordnete sequenziell" bedeutet, dass Pakete in der gesendeten Bestellung geliefert werden. "Unduplicated" bedeutet, dass Sie ein bestimmtes Paket nur einmal abrufen.
Hinweis |
---|
Unter einigen Netzwerkprotokollen wie XNS, können Streams sein ausgerichtete Datensatz, der als Streams von Datensätzen anstelle von Streams Bytes.unter dem allgemeineren TCP/IP-Protokoll sind jedoch Streams Byteströme.Windows Sockets stellt einen Abstraktionebene unabhängig vom zugrunde liegenden Protokolls. |
Weitere Informationen zu diesen Typen und die Art, in welchen Situationen zu verwenden, Windows Sockets: Streamsockets des Sockets, und Windows Sockets: Datagrammsockets finden.
Der Datentyp SOCKET
Jedes MFC-Socketobjekt kapselt ein Handle für ein Windows Socket-Objekt.Der Datentyp dieses Handles ist SOCKET.Ein SOCKET Handle ist HWND für ein Fenster analog.MFC-Socketklassen stellen Operationen auf dem gekapselten Handle bereit.
Der SOCKET Datentyp wird in Windows SDK beschrieben.Siehe "Socket-Datentyp und Fehlerwerte" unter Windows Sockets.
Verwenden Sie für Sockets
Sockets sind in mindestens drei Kommunikationskontexten äußerst nützlich:
Anwendermodelle.
gleichberechtigt Szenarien, wie Messaging-Anwendungen.
Remoteprozeduraufrufe (RPC) mithilfe der empfangende Anwendung zu interpretieren, haben Sie eine Meldung als Funktionsaufruf.
Tipp |
---|
Das ideale Argument für die Verwendung von MFC-Sockets ist, wenn Sie beide Enden der Kommunikation schreiben: mit MFC an beiden Enden.Weitere Informationen zu diesem Thema, enthalten, wie der Fall, wenn Sie mit Nicht-MFC-Anwendungen kommunizieren, finden Sie unter Windows Sockets: Bytereihenfolge verwaltet. |
Weitere Informationen finden Sie unter Windows Socket-Spezifikation: ntohs, ntohl, htons, htonl.Beachten Sie die folgenden Themen: