WinSock.h et WinSock2.h qui utiliser?

Est-ce que quelqu’un connaît les différences entre WinSock.h et WinSock2.h. Je sais qu’ils n’utilisent pas la même bibliothèque (.lib) mais je ne sais pas si WinSock2 ajoute uniquement de nouvelles fonctionnalités ou si cela améliore également les fonctionnalités de WinSock 1. Je travaille avec des sockets IP / TCP et je veux gérer les délais avec select (). J’utilise également plusieurs threads pour gérer plusieurs clients simultanément. Devrais-je continuer à utiliser WinSock 1.1 ou devrais-je passer à WinSock 2? Merci d’avance.

Vous devriez probablement utiliser winsock2.h .

Quelques points:

  • winsock.h devrait être utilisé avec wsock32.lib et winsock2.h devrait être utilisé avec ws2_32.lib
  • winsock.h et winsock2.h ne devraient pas être ensemble dans le même projet, winsock2.h remplace winsock.h et ne l’étend pas.
  • winsock.h ne doit être utilisé que si vous ciblez l’ancienne version de Windows comme Windows 95 / Windows NT 3.5.

Implémentations Microsoft

La version 1.1 ( winsock.h ) de Winsock était fournie dans un package complémentaire (appelé Wolverine) pour Windows pour Workgroups (code nommé Snowball). Il faisait partie intégrante de Windows 95 et Windows NT à partir des versions 3.5 et ultérieures (la version initiale de Windows NT disponible dans le commerce, version 3.1, incluait uniquement une implémentation TCP / IP propriétaire et incomplète basée sur les Streams AT & T UNIX System V). “API.

La version 2.1 ( winsock2.h ) de Winsock était fournie dans un package complémentaire pour Windows 95. Elle faisait partie intégrante de Windows 98, Windows NT 4.0 et de toutes les versions ultérieures de Windows. Les versions récentes de Winsock 2.x ont été livrées avec de nouvelles versions de Windows ou dans le cadre de service packs.

Winsock2 ajoute-t-il des fonctionnalités?

Winsock 2 est extensible par un mécanisme appelé fournisseur de services en couches (LSP). Les LSP Winsock sont disponibles pour un large éventail de fonctions utiles, notamment le contrôle parental sur Internet, le filtrage de contenu Web, la qualité de service, etc.

Winsock.h est là pour conserver la compilation du code qui a commencé à fonctionner dans la version 16 bits de Windows. Vous devez toujours utiliser Winsock2.h et créer un lien vers ws2_32.lib dans les nouveaux projets.