Создание базового приложения Winsock
Создание базового приложения Winsock
Создайте пустой проект.
Добавьте в проект пустой исходный файл C++.
Убедитесь, что среда сборки ссылается на каталоги Include, Lib и Src пакета средств разработки программного обеспечения Microsoft Windows (SDK) или более ранней версии пакета средств разработки программного обеспечения платформы (SDK).
Убедитесь, что среда сборки ссылается на файл библиотеки Winsock Ws2_32.lib. Приложения, использующие Winsock, должны быть связаны с файлом библиотеки Ws2_32.lib. Комментарий #pragma указывает компоновщику, что требуется файл Ws2_32.lib .
Начните программирование приложения Winsock. Используйте API Winsock, включив файлы заголовков Winsock 2. Файл заголовка Winsock2.h содержит большинство функций, структур и определений Winsock. Файл заголовка Ws2tcpip.h содержит определения, представленные в Protocol-Specific приложении WinSock 2 для TCP/IP, который включает более новые функции и структуры, используемые для получения IP-адресов.
Примечание
Stdio.h используется для стандартных входных и выходных данных, в частности функции printf().
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#pragma comment(lib, "Ws2_32.lib")
int main() {
return 0;
}
Примечание
Файл заголовка Iphlpapi.h является обязательным, если приложение использует вспомогательные API IP. Если требуется файл заголовка Iphlpapi.h , #include строку для файла заголовка Winsock2.h следует поместить перед строкой #include для файла заголовка Iphlpapi.h .
Файл заголовка Winsock2.h внутренне включает основные элементы из файла заголовка Windows.h , поэтому обычно нет строки #include для файла заголовка Windows.h в приложениях Winsock. Если для файла заголовка Windows.h требуется строка #include, перед ней должен находиться макрос #define WIN32_LEAN_AND_MEAN. По историческим причинам заголовок Windows.h по умолчанию включает файл заголовка Winsock.h для Windows Sockets 1.1. Объявления в файле заголовка Winsock.h будут конфликтовать с объявлениями в файле заголовка Winsock2.h , необходимым для Windows Sockets 2.0. Макрос WIN32_LEAN_AND_MEAN предотвращает включение Winsock.h в заголовок Windows.h . Ниже приведен пример, демонстрирующий это.
#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;
}
Следующий шаг. Инициализация Winsock
Связанные темы