Partager via


Création d’une application Winsock de base

Pour créer une application Winsock de base

  1. Créez un projet vide.

  2. Ajoutez un fichier source C++ vide au projet.

  3. Vérifiez que l’environnement de build fait référence aux répertoires Include, Lib et Src du Kit de développement logiciel (SDK) Microsoft Windows ou du Kit de développement logiciel (SDK) de plateforme antérieur.

  4. Vérifiez que l’environnement de build est lié au fichier de bibliothèque Winsock Ws2_32.lib. Les applications qui utilisent Winsock doivent être liées au fichier de bibliothèque Ws2_32.lib. Le commentaire #pragma indique à l’éditeur de liens que le fichier Ws2_32.lib est nécessaire.

  5. Commencez à programmer l’application Winsock. Utilisez l’API Winsock en incluant les fichiers d’en-tête Winsock 2. Le fichier d’en-tête Winsock2.h contient la plupart des fonctions, structures et définitions Winsock. Le fichier d’en-tête Ws2tcpip.h contient des définitions introduites dans le document WinSock 2 Protocol-Specific Annexe pour TCP/IP qui inclut des fonctions et structures plus récentes utilisées pour récupérer des adresses IP.

    Notes

    Stdio.h est utilisé pour l’entrée et la sortie standard, en particulier la fonction printf( ).

     

#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

int main() {
  return 0;
}

Notes

Le fichier d’en-tête Iphlpapi.h est requis si une application utilise les API d’assistance IP. Lorsque le fichier d’en-tête Iphlpapi.h est requis, la ligne #include du fichier d’en-tête Winsock2.h doit être placée avant la ligne #include du fichier d’en-tête Iphlpapi.h .

Le fichier d’en-tête Winsock2.h inclut en interne les éléments principaux du fichier d’en-tête Windows.h . Il n’y a donc généralement pas de ligne #include pour le fichier d’en-tête Windows.h dans les applications Winsock. Si une ligne #include est nécessaire pour le fichier d’en-tête Windows.h , elle doit être précédée de la macro #define WIN32_LEAN_AND_MEAN. Pour des raisons historiques, l’en-tête Windows.h inclut par défaut le fichier d’en-tête Winsock.h pour Windows Sockets 1.1. Les déclarations dans le fichier d’en-tête Winsock.h entrent en conflit avec les déclarations dans le fichier d’en-tête Winsock2.h requis par Windows Sockets 2.0. La macro WIN32_LEAN_AND_MEAN empêche winsock.h d’être inclus par l’en-tête Windows.h . Un exemple illustrant cela est illustré ci-dessous.

 

#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif

#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

int main() {
  return 0;
}

Étape suivante : Initialisation de Winsock

Prise en main avec Winsock

À propos des serveurs et des clients