• 网络编程 WSAStartup


    #include//网络库。
    #pragma comment(lib,"Ws2_32.lib")//只有32位的。对应库。

    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;网络库打开失败,不支持请求的套接字版本。

  • 相关阅读:
    SpringBoot + xxl-job 多数据源异构数据增量同步
    静态类和非静态类的区别
    JVM启动参数大全
    [兔子私房课] Mybatis开发详解与项目实战02
    带自动采集小说网站源码 小说听书网站源码 小说网站源码 带教程
    Linux防火墙Centos6的常用命令iptables
    RUST 每日一省:全局变量
    自动化测试,资深测试老鸟总结自动化测试框架,从0到1的自动化测试框架搭建(详全)
    结构赋值是浅拷贝还是深拷贝
    用户行为日志采集脚本lg.sh
  • 原文地址:https://blog.csdn.net/qq_52119661/article/details/126181012