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

  • 相关阅读:
    Windows提示“无法删除文件:无法读源文件或磁盘”怎么办?
    链表 oj2 (7.31)
    【愚公系列】2022年08月 微信小程序-slider滑动选择器详解
    为什么建议将常量用const关键字来修饰
    linux 服务器进程、端口查找,nginx 配置日志查找,lsof 命令详解
    Vue事件修饰符
    B - Magical Subsequence (CCPC2021哈尔滨)
    Linux环境sed工具的使用及工作原理
    【Spring Boot 集成应用】Actuator监控功能使用
    Python 全栈安全(二)
  • 原文地址:https://blog.csdn.net/qq_52119661/article/details/126181012