Share via


Criando um aplicativo Winsock básico

Para criar um aplicativo Winsock básico

  1. Crie um novo projeto vazio.

  2. Adicione um arquivo de origem C++ vazio ao projeto.

  3. Verifique se o ambiente de build refere-se aos diretórios Include, Lib e Src do SDK (Software Development Kit) do Microsoft Windows ou do SDK (Software Development Kit) da plataforma anterior.

  4. Verifique se o ambiente de build é vinculado ao arquivo da Biblioteca Winsock Ws2_32.lib. Os aplicativos que usam Winsock devem ser vinculados ao arquivo de biblioteca Ws2_32.lib. O comentário #pragma indica ao vinculador que o arquivo Ws2_32.lib é necessário.

  5. Comece a programar o aplicativo Winsock. Use a API winsock incluindo os arquivos de cabeçalho Winsock 2. O arquivo de cabeçalho Winsock2.h contém a maioria das funções, estruturas e definições do Winsock. O arquivo de cabeçalho Ws2tcpip.h contém definições introduzidas no documento Anexo do WinSock 2 Protocol-Specific para TCP/IP que inclui funções e estruturas mais recentes usadas para recuperar endereços IP.

    Observação

    Stdio.h é usado para entrada e saída padrão, especificamente a função printf( ).

     

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

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

int main() {
  return 0;
}

Observação

O arquivo de cabeçalho Iphlpapi.h será necessário se um aplicativo estiver usando as APIs auxiliares de IP. Quando o arquivo de cabeçalho Iphlpapi.h é necessário, a linha #include do arquivo de cabeçalho Winsock2.h deve ser colocada antes da linha de #include para o arquivo de cabeçalho Iphlpapi.h .

O arquivo de cabeçalho Winsock2.h inclui internamente elementos principais do arquivo de cabeçalho Windows.h , portanto, geralmente não há uma linha #include para o arquivo de cabeçalho Windows.h em aplicativos Winsock. Se uma linha de #include for necessária para o arquivo de cabeçalho Windows.h , isso deverá ser precedido com a macro #define WIN32_LEAN_AND_MEAN. Por motivos históricos, o cabeçalho Windows.h usa como padrão a inclusão do arquivo de cabeçalho Winsock.h para Windows Sockets 1.1. As declarações no arquivo de cabeçalho Winsock.h entrarão em conflito com as declarações no arquivo de cabeçalho Winsock2.h exigido pelo Windows Sockets 2.0. A macro WIN32_LEAN_AND_MEAN impede que o Winsock.h seja incluído pelo cabeçalho Windows.h . Um exemplo ilustrando isso é mostrado abaixo.

 

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

Próxima etapa: inicializando Winsock

Introdução com Winsock

Sobre servidores e clientes