Skapa ett Basic Winsock-program

Skapa ett grundläggande Winsock-program

  1. Skapa ett nytt tomt projekt.

  2. Lägg till en tom C++-källfil i projektet.

  3. Se till att byggmiljön refererar till katalogerna Include, Lib och Src i Microsoft Windows Software Development Kit (SDK) eller tidigare Platform Software Development Kit (SDK).

  4. Se till att byggmiljön länkar till Winsock-biblioteksfilen Ws2_32.lib. Program som använder Winsock måste länkas till biblioteksfilen Ws2_32.lib. Kommentaren #pragma anger för länkaren att filen Ws2_32.lib behövs.

  5. Börja programmera Winsock-programmet. Använd Winsock-API:et genom att inkludera Winsock 2-huvudfilerna. Winsock2.h- huvudfil innehåller de flesta winsock-funktioner, strukturer och definitioner. Ws2tcpip.h-huvudfilen innehåller definitioner som introducerades i winsock 2-Protocol-Specific bilagadokumentet för TCP/IP som innehåller nyare funktioner och strukturer som används för att hämta IP-adresser.

    Not

    Stdio.h används för standardindata och utdata, särskilt funktionen printf().

     

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

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

int main() {
  return 0;
}

Not

Iphlpapi.h huvudfil krävs om ett program använder API:erna för IP-hjälpen. När Iphlpapi.h--huvudfilen krävs ska #include-raden för Winsock2.h--huvudfilen placeras före #include-raden för Iphlpapi.h--huvudfilen.

Winsock2.h--huvudfilen innehåller internt kärnelement från Windows.h--huvudfil, så det finns vanligtvis inte en #include rad för Windows.h- huvudfil i Winsock-program. Om det behövs en #include rad för Windows.h--huvudfilen bör detta föregås av #define WIN32_LEAN_AND_MEAN makro. Av historiska skäl inkluderar Windows.h-headerfilen som standard Winsock.h-headerfilen för Windows Sockets 1.1. Deklarationerna i Winsock.h--huvudfilen kommer i konflikt med deklarationerna i Winsock2.h huvudfil som krävs av Windows Sockets 2.0. Makrot WIN32_LEAN_AND_MEAN förhindrar att Winsock.h- inkluderas i Windows.h--huvudet. Ett exempel som illustrerar detta visas nedan.

 

#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;
}

Nästa steg: Initiera Winsock

komma igång med Winsock

Om servrar och klienter