• 网络编程 版本校验


    #include
    #include
    #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)
        {
            switch (nRes)
            {
            case WSASYSNOTREADY:
                printf("重启下电脑试试,或者检查网络库。\n");
                break;
            case WSAVERNOTSUPPORTED:
                printf("请更新网络库。\n");
                break;
            case WSAEINPROGRESS:
                printf("请重新启动软件。\n");
                break;
            case WSAEPROCLIM:
                printf("请尝试关掉不必要的软件,以为当前网络运行提供充足的资源。\n");
                break;
            /*case WSAEFAULT://参数问题。
                break;*/
            
            }
        }
    //校验版本。
        if (2 != HIBYTE(wdScokMsg.wVersion) || 2 != LOBYTE(wdScokMsg.wVersion))
        {
            //说明版本不对。
            //清理网络库。
            WSACleanup();
            return 0;
        }

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

    校验版本:

    1、2!=HIBYTE( wsaData.wVersion)||2!=LOBYTE( wsaData.wVersion)

             a、HIBYTE是高位,副版本。

             b、LOBYTE是低位,主版本。

             c、逻辑,只要一个不是2,就说明系统不支持我们要的2.2版本。

    2、关闭库,并结束函数,可以给出相应提示

             a、WSACleanup();

             b、return 0;

  • 相关阅读:
    apple MFI工厂认证,干货,为防止MFI工作人员查看,已设置VIP阅读
    艾美捷ProSci丨ProSci I kappa B 激酶检测套装解决方案
    编程学:同一个数据,要只有一处保存
    速览 NFT 期权赛道代表项目与发展前景
    运用可视化报表设计器,实现高效率办公!
    微服务高可用容灾架构设计
    vue + vant van-pull-refresh 列表页记录滚动条位置,详情再返回列表页后还原记录的滚动条位置
    哈希——开散列
    osg实现三次样条Cardinal曲线
    学C语言的第一节课
  • 原文地址:https://blog.csdn.net/qq_52119661/article/details/126190489