Windows Sockets : Arrière-plan
Cet article explique la nature et l'objectif de Windows Sockets.L'article aussi :
Définit le terme « socket ».
Décrit le type de données de handle de SOCKET.
Décrit les utilisations des sockets.
La spécification de Windows Sockets définit une interface de programmation réseau binaire- compatible pour Microsoft Windows.Windows Sockets sont basés sur l'implémentation de sockets UNIX dans Berkeley Software Distribution (schéma, version 4,3) de l'Université de Californie à Berkeley.La spécification inclut les deux sous-routines et extensions de style du schéma de socket spécifiques à windows.Utilisation des autorisations de Windows Sockets votre application pour communiquer entre un réseau conforme à l'API Windows Sockets.Sur Win32, Windows Sockets prévoit la sécurité des threads.
De nombreux éditeurs de logiciels réseau prennent en charge Windows Sockets sous des protocoles réseau y compris le protocole TCP/IP (TCP/IP), le Xerox Network System (XNS), le protocole de DECnet numériquement de Equipment Corporation, l'échange à en-tête pack Internet de Novell Corporation'S/échange séquencé compressé (IPX/SPX), et autres.Bien que la spécification de Windows Sockets de présent définisse l'abstraction de sockets pour TCP/IP, n'importe quel protocole réseau peut être conforme à Windows Sockets en fournissant sa propre version de la bibliothèque de liens dynamiques (DLL) qui implémente Windows Sockets.Les exemples d'applications commerciales écrites avec Windows Sockets incluent des serveurs de X Windows, les émulateurs terminaux, et les systèmes de messagerie.
[!REMARQUE]
L'objectif de Windows Sockets est d'abréger loin le réseau sous-jacent afin que vous n'ayez pas être informé bien sur ce réseau et votre application puisse s'exécuter sur n'importe quel réseau qui prend en charge les sockets.Par conséquent, cette documentation ne traite pas les détails des protocoles réseau.
La bibliothèque MFC (microsoft foundation class) prend en charge la programmation avec l'API Windows Sockets en fournissant deux classes.Une de ces classes, CSocket, fournit un haut niveau d'abstraction pour simplifier la programmation de communication réseau.
La spécification de Windows Sockets, Windows Sockets : Une interface ouverte pour l'informatique de réseau sous Microsoft Windows, maintenant à la version 1,1, a été développée en tant que standard réseau ouvert par un grand groupe des personnes et des sociétés à la communauté de TCP/IP et librement est disponible.Le modèle de programmation de sockets prend en charge un « domaine de communication » actuel, à la suite de les protocoles Internet.La spécification est disponible dans Kit de développement logiciel Windows.
Conseil |
---|
Étant donné que les sockets utilisent la suite de les protocoles Internet, ils sont l'itinéraire par défaut pour les applications qui prennent en charge les communications Internet sur la « autoroute d'informations. » |
Définition d'un socket
Un socket est un point de terminaison de communication (un objet dans lequel une application Windows Sockets envoie et reçoit des paquets de données sur un réseau.Un socket a un type et est associé à un processus en cours de exécution, et peut avoir un nom.Actuellement, de sockets échanger des données en général uniquement avec d'autres douilles dans le même domaine de communication « , » qui utilise la suite de les protocoles Internet.
Les deux types de sockets sont bidirectionnelles ; ce sont des flux de données qui peuvent être communiqués dans les deux directions simultanément (bidirectionnel simultané).
Deux types de socket sont disponibles :
Sockets flux
Sockets flux prévoit un flux de données sans limites d'enregistrement : un flux des octets.Les flux est garantie être remis et correctement pour être séquencés et unduplicated.
Sockets datagramme
Sockets datagramme prennent en charge un flux de données enregistrement- orienté qui n'est pas garanti être remis et ne peuvent être séquencés comme envoyé ou unduplicated.
« Séquencé » signifie que les paquets sont remis dans l'ordre envoyée. "Unduplicated » signifie que vous obtenez un à en-tête pack donné qu'une seule fois.
[!REMARQUE]
Sous certains protocoles réseau, tels que le XNS, les flux peuvent être enregistrement orienté flux, comme les enregistrements plutôt que des flux des octets.Sous le protocole TCP/IP plus courant, toutefois, les flux sont des flux d'octets.Windows Sockets fournit un niveau d'abstraction indépendant du fournisseur sous-jacent.
Pour plus d'informations sur ces types et qui genre de socket à utiliser dans les situations, consultez Windows Sockets : Sockets flux et Windows Sockets : Sockets datagramme.
Le type de données de SOCKET
Chaque objet socket MFC encapsule un handle vers un objet Windows Sockets.Le type de données de ce handle est tête creuse.Un handle de tête creuse est analogue à HWND pour une fenêtre.Les classes de sockets MFC fournissent des opérations sur le handle encapsulé.
Le type de données de tête creuse est décrit en détail dans Kit de développement logiciel Windows.Consultez « type de données et valeurs d'erreur de socket » sous Windows Sockets.
Utilise des sockets
Sockets sont très utiles dans au moins trois contextes de communication :
Modèles client/serveur.
Scénarios égal, tels que les applications de messagerie.
En effectuant des appels de procédure distante (RPC) en quittant l'application de réception interpréter un message comme un appel de fonction.
Conseil |
---|
Le point droit de l'idéal pour l'utilisation des sockets MFC est lorsque vous écrivez les deux extrémités de la communication : à l'aide de MFC aux deux extrémités.Pour plus d'informations sur cette rubrique, notamment comment gérer le cas lorsque vous communiquez avec les applications non-MFC, consultez l' Windows Sockets : L'ordre d'octet. |
Pour plus d'informations, consultez la spécification de Windows Sockets : ntohs, ntohl, htons, htonl.En outre, consultez les rubriques suivantes :