网络编程 WSAStartup

本文介绍了Windows Socket编程中WSAStartup函数的使用,包括其功能、参数解析以及版本匹配规则。该函数用于启动网络库,使得网络功能可以使用。文章详细解释了如何指定版本以及系统如何响应不同版本请求。
摘要由CSDN通过智能技术生成

#include<WinSock2.h>//网络库。<WinSock.h>
#pragma comment(lib,"Ws2_32.lib")//只有32位的。<Wsock32.lib>对应<WinSock.h>库。

int main(void)
{
    WORD wdVersion = MAKEWORD(2,2);//传入MAKEWORD宏里,存入wdVersion里。
    //MAKEWORD:原理((WORD)(((BYTE)(((DWORD_PTR)(a))&0xff))| ((WORD)(((BYTE)(((DWORD_PTR)(b)) &0xff)))<<8))。
    WSADATA wdScokMsg;
    //LPWSADATA lpw = malloc(sizeof(WSADATA));
    
    //int a = *((char*)&wdVersion);
    //int b = *((char*)&wdVersion+1);
    //WSAStartup(wdVersion, lpw);
    
    int nRes=WSAStartup(wdVersion,&wdScokMsg);
    
    if (0!=nRes)
    {

    }
    //free(lpw);
    system("pause");
    return 0;
}

WSAStartup:

     1、功能:

              a、打开网络库/启动网络库,启动这个库,这个库里的函数/功能才能试用。

              b、W windows, S socket,  A  Asynchronous异步 ,S startup 启动

                      ----异步与同步:1、同步:阻塞/卡死状态。

                                                2、异步:多个工作同时进行。

     2、参数1:

             a、word 类型。---转定义:unsigned short

             b、MEKEWORD(主版本,副版本)。wVersionRequired:数据高位是副版本,数据低位是主版本。        

             c、位运算、内存操作、小端存储。

    3、参数2:(版本有:1.0,1.1,2.0,2.1,2.2)

             a、系统通过通过这个参数给我们一些配置信息。注意:当参数出现LP P前缀时,说明此处要调用相应类新的地址。

             b、wVersion:使用的版本;wHighVersion:系统提供的最高版本。

             c、当输入版本不存在:

                 1、输入1.3,2.3;有主版本,无副版本;得到该主版本最大副版本1.1,1.2。

                 2、 输入3.3,3.3;超过最大版本号;使用系统提供的最大的版本2.2。

                 3、输入0.0,0.1,0.3;主版本是0;网络库打开失败,不支持请求的套接字版本。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clown_30

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值