Fichiers include

le fichier include d’origine à utiliser avec Windows sockets 1,1 était le fichier d’en-tête Winsock. h . pour faciliter le portage du code source existant basé sur Berkeley UNIX sockets vers Windows sockets, les kits de développement Windows sockets pour Winsock 1,1 ont été encouragés à être fournis avec plusieurs fichiers include portant le même nom que les fichiers d’en-tête standard UNIX (les fichiers d’en-tête sys/socket. h et arpa/inet. h, par exemple). Toutefois, ces fichiers d’en-tête Winsock de même nom contiennent simplement une directive pour inclure le fichier d’en-tête Winsock2. h .

lors de la sortie de Windows sockets 2, le fichier include principal pour une utilisation avec Windows sockets a été renommé Winsock2. h. L’ancien fichier d’en-tête Winsock. h d’origine pour Winsock 1,1 a également été conservé pour la compatibilité avec les applications plus anciennes. le développement d’applications compatibles Winsock 1,1 est déconseillé depuis la sortie de Windows 2000. Toutes les applications doivent maintenant utiliser la directive include Winsock2. h dans les fichiers sources de l’application Winsock.

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 les définitions présentées dans le document de l’annexe WinSock 2 Protocol-Specific pour TCP/IP, qui inclut des fonctions et structures plus récentes utilisées pour récupérer des adresses IP. Il s’agit notamment de la famille de fonctions getaddrinfo et GetNameInfo qui fournissent la résolution de noms pour les adresses IPv4 ou IPv6. Le fichier d’en-tête Ws2tcpip. h n’est nécessaire que si ces fonctions d’attribution de noms IP indépendantes sont requises par l’application.

le fichier d’en-tête Mswsock. h contient des définitions pour les extensions spécifiques à Microsoft de la Windows sockets 2 (TransmitFile, acceptedet ConnectEx, par exemple). Le fichier d’en-tête mswsock. h n’est normalement pas nécessaire, sauf si ces extensions spécifiques à Microsoft sont utilisées par l’application.

le fichier d’en-tête Winsock2. h inclut en interne les éléments principaux du fichier d’en-tête Windows. h , de sorte qu’il n’y a 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 _ maigre _ 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 du fichier d’en-tête Winsock. h sont en conflit avec les déclarations dans le fichier d’en-tête Winsock2. h requis par Windows sockets 2. la _ _ _ macro moyenne et moyenne WIN32 empêche l’inclusion de Winsock. h par l’en-tête Windows. h . Vous trouverez ci-dessous un exemple illustrant cette illustration.

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

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

int main() {
  return 0;
}

Création d’une application Winsock de base

Prise en main avec Winsock

Portage d’applications de socket vers Winsock

Considérations sur la programmation Winsock