Windows网络编程(一)

发布时间 2023-09-24 23:53:39作者: TechNomad

一、WSAStartup函数

WSAStartup 是 Windows 套接字 API 中的一个函数,它用于初始化 Winsock 库,这是 Windows 中用于网络编程的库。使用 Winsock,您可以创建客户端和服务器应用程序,以便它们能够通过网络进行通信。

函数的原型如下:

int WSAStartup(
  WORD      wVersionRequested,
  LPWSADATA lpWSAData
);

参数说明:

  • wVersionRequested:指定要使用的 Winsock 版本,通常使用 MAKEWORD(majorVersion, minorVersion) 来设置。例如,要使用版本 2.2,您可以使用 MAKEWORD(2, 2)
  • lpWSAData:指向 WSADATA 结构的指针,用于接收关于 Winsock 初始化的信息。

函数返回值:

  • 如果函数成功初始化 Winsock 库,它将返回 0。
  • 如果发生错误,它将返回一个错误代码

错误码:

注意:在使用 Winsock 库中的其他函数之前,必须调用 WSAStartup 来初始化库,而且在应用程序退出时调用 WSACleanup 来释放相关资源。

示例代码:

#include <WinSock2.h>
#include <stdio.h>

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

int main() {
    WSADATA wsaData; // 创建一个 WSADATA 结构

    // 初始化 Winsock 库,指定要使用的版本
    int ret = WSAStartup(MAKEWORD(1, 2), &wsaData);
    if (ret != 0) {
        printf("WSAStartup 失败,错误码: %d\n", ret);
        
        return 0;
    }

    // 在这里进行网络编程操作

    // 当您的程序完成网络编程后,确保调用 WSACleanup 来释放 Winsock 资源
    WSACleanup();

    return 1;
}