Creación de una aplicación básica de Winsock

Para crear una aplicación básica de Winsock

  1. Cree un nuevo proyecto vacío.

  2. Agregue un archivo de código fuente de C++ vacío al proyecto.

  3. Asegúrese de que el entorno de compilación hace referencia a los directorios Include, Lib y Src del Kit de desarrollo de software (SDK) de Microsoft Windows o del Kit de desarrollo de software (SDK) de plataforma anterior.

  4. Asegúrese de que el entorno de compilación se vincula al archivo de biblioteca winsock Ws2_32.lib. Las aplicaciones que usan Winsock deben estar vinculadas con el archivo de biblioteca Ws2_32.lib. El #pragma comentario indica al enlazador que se necesita el archivo Ws2_32.lib .

  5. Comience a programar la aplicación Winsock. Use la API de Winsock mediante la inclusión de los archivos de encabezado winsock 2. El archivo de encabezado Winsock2.h contiene la mayoría de las funciones, estructuras y definiciones de Winsock. El archivo de encabezado Ws2tcpip.h contiene definiciones introducidas en el documento anexo de WinSock 2 Protocol-Specific para TCP/IP que incluye funciones y estructuras más recientes que se usan para recuperar direcciones IP.

    Nota

    Stdio.h se usa para la entrada y salida estándar, específicamente la función printf().

     

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

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

int main() {
  return 0;
}

Nota

El archivo de encabezado Iphlpapi.h es necesario si una aplicación usa las API del asistente de IP. Cuando se requiere el archivo de encabezado Iphlpapi.h , se debe colocar la línea #include para el archivo de encabezado Winsock2.h antes de la línea #include para el archivo de encabezado Iphlpapi.h .

El archivo de encabezado Winsock2.h incluye internamente elementos principales del archivo de encabezado Windows.h , por lo que no suele haber una línea #include para el archivo de encabezado Windows.h en las aplicaciones Winsock. Si se necesita una línea #include para el archivo de encabezado Windows.h , debe ir precedida de la macro #define WIN32_LEAN_AND_MEAN. Por motivos históricos, el encabezado Windows.h tiene como valor predeterminado incluir el archivo de encabezado Winsock.h para Windows Sockets 1.1. Las declaraciones del archivo de encabezado Winsock.h entrarán en conflicto con las declaraciones del archivo de encabezado Winsock2.h requerido por Windows Sockets 2.0. La macro WIN32_LEAN_AND_MEAN impide que el encabezado Windows.h incluya Winsock.h. A continuación se muestra un ejemplo que ilustra esto.

 

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

Paso siguiente: Inicialización de Winsock

Introducción con Winsock

Acerca de los servidores y clientes