Udostępnij za pośrednictwem


Tworzenie podstawowej aplikacji Winsock

Aby utworzyć podstawową aplikację Winsock

  1. Utwórz nowy pusty projekt.

  2. Dodaj pusty plik źródłowy C++ do projektu.

  3. Upewnij się, że środowisko kompilacji odwołuje się do katalogów Include, Lib i Src zestawu Microsoft Windows Software Development Kit (SDK) lub wcześniejszego zestawu Sdk (Platform Software Development Kit).

  4. Upewnij się, że środowisko kompilacji łączy się z plikiem biblioteki Winsock Ws2_32.lib. Aplikacje korzystające z biblioteki Winsock muszą być połączone z plikiem biblioteki Ws2_32.lib. Komentarz #pragma wskazuje linkerowi, że wymagany jest plik Ws2_32.lib.

  5. Rozpocznij programowanie aplikacji Winsock. Użyj interfejsu API winsock, dołączając pliki nagłówka Winsock 2. Plik nagłówka Winsock2.h zawiera większość funkcji, struktur i definicji usługi Winsock. Plik nagłówka Ws2tcpip.h zawiera definicje wprowadzone w dokumencie WinSock 2 Annex Protocol-Specific, który zawiera nowsze funkcje i struktury używane do pobierania adresów IP.

    Notatka

    Stdio.h jest używany do standardowych danych wejściowych i wyjściowych, w szczególności funkcji printf().

     

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

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

int main() {
  return 0;
}

Notatka

Plik nagłówka Iphlpapi.h jest wymagany, jeśli aplikacja korzysta z IP Helper API. Gdy wymagany jest plik nagłówka Iphlpapi.h, wiersz #include dla pliku nagłówka Winsock2.h należy umieścić przed wierszem #include dla pliku nagłówka Iphlpapi.h.

Plik nagłówka Winsock2.h wewnętrznie zawiera podstawowe elementy z pliku nagłówka Windows.h, dlatego w aplikacjach Winsock nie ma zwykle wiersza #include dla pliku nagłówka Windows.h. Jeśli linia #include dla pliku nagłówka Windows.h jest wymagana, należy ją poprzedzić makrem #define WIN32_LEAN_AND_MEAN. Ze względów historycznych nagłówek Windows.h domyślnie uwzględnia nagłówek pliku Winsock.h dla sockets Windows 1.1. Deklaracje w pliku nagłówka Winsock.h będą powodować konflikt z deklaracjami w pliku nagłówka Winsock2.h wymaganym przez Windows Sockets 2.0. Makro WIN32_LEAN_AND_MEAN uniemożliwia dołączanie Winsock.h przez nagłówek Windows.h. Przykład pokazujący to pokazano poniżej.

 

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

Następny krok: Inicjowanie Winsock

Rozpoczynanie pracy z Winsock

Informacje o serwerach i klientach