创建基本 Winsock 应用程序

创建基本 Winsock 应用程序

  1. 创建新的空项目。

  2. 将空的 C++ 源文件添加到项目。

  3. 确保生成环境引用 Microsoft Windows 软件开发工具包 (SDK) 或早期平台软件开发工具包 (SDK) 的 Include、Lib 和 Src 目录。

  4. 确保生成环境链接到 Winsock 库文件Ws2_32.lib。 使用 Winsock 的应用程序必须与 Ws2_32.lib 库文件链接。 #pragma注释向链接器指示需要 Ws2_32.lib 文件。

  5. 开始对 Winsock 应用程序进行编程。 通过包含 Winsock 2 头文件使用 Winsock API。 Winsock2.h 头文件包含大多数 Winsock 函数、结构和定义。 Ws2tcpip.h 头文件包含 WinSock 2 Protocol-Specific 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;
}

注意

如果应用程序使用 IP 帮助程序 API,则需要 Iphlpapi.h 头文件。 当 需要 Iphlpapi.h 头文件时, Winsock2.h 头文件的#include行应放在 Iphlpapi.h 头文件的#include行之前。

Winsock2.h 头文件内部包含 Windows.h 头文件中的核心元素,因此 Winsock 应用程序中的 Windows.h 头文件通常没有#include行。 如果 Windows.h 头文件需要#include行,则前面应包含#define WIN32_LEAN_AND_MEAN宏。 出于历史原因, Windows.h 标头默认包含 Windows 套接字 1.1 的 Winsock.h 头文件。 Winsock.h 头文件中的声明将与 Windows 套接字 2.0 所需的 Winsock2.h 头文件中的声明冲突。 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

使用 Winsock 入门

关于服务器和客户端