• 网络编程 socket含义


    #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;
    }
    SOCKET socketServer = socket();

    socket:

    1、将底层复杂的协议体系,执行体系,进行封装,封装完了的结果,就是一个SOCKET。也就是说SOCKET是我们调用协议进行通信的操作接口。

    2、意义:大大减轻了编程层面人员的负担,不用考虑网络编程协议本身的复杂性。

    3、本质:是一种数据类型,就是一个整数();但这个数是唯一的,标识着我当前的应用程序,协议特点等信息;ID,门牌号。

    4、应用:网络编程的函数都要使用SOCKET;逻辑:每个客户端就有一个SOCKET,服务器有一个SOCKET,通信时需要这个SOCKET做参数,给谁通信,就要传递谁的SOCKET。

    5、总结:网络编程,理论层面SOCKET是网络封装的精华。代码层面就是不停的使用SOCKET这个变量,所以又叫SOCKET编程。

  • 相关阅读:
    kafka详解及集群环境搭建
    Springboot 使用管道设计模式 , 实践案例玩一玩
    使用`archinstall`安装`Arch Linux`
    java计算机毕业设计评标专家管理信息系统源码+数据库+系统+lw文档+mybatis+运行部署
    [Java]枚举类
    浅析Java反射机制
    echarts的折线图,在点击图例后,提示出现变化,不报错。tooltip的formatter怎么写
    C++:写ini文件(附完整源码)
    微软放弃“封禁”商业开源!
    微信小程序开发SSM投票系统+后台管理系统|前后分离VUE
  • 原文地址:https://blog.csdn.net/qq_52119661/article/details/126190779