zoukankan      html  css  js  c++  java
  • 关于链表的创建 代码

    struct SocketObj
    {
        SOCKET socket;   
    //当前对象的socket
        BOOL   listening; //该套接字是否已经
        SocketObj *next, //向后
            *prev;  //向前
    };
    SocketObj 
    *g_pSocketList = NULL;  //Socket连表
    SocketObj *g_pSocketEnd = NULL;   //连表的尾部
    int        g_nSocketCount = 0;
    HANDLE g_hSelect;
    //创建SocketObj
    SocketObj* GetSocketObj(SOCKET s,BOOL listening)
    {
        SocketObj 
    *newSocketObj = NULL;
        newSocketObj 
    = (SocketObj*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(SocketObj));
        
    if(newSocketObj == NULL)
        {
            cout
    <<"GetSocketObj: HeapAlloc failed: "<< GetLastError()<<endl;
            ExitProcess(
    -1);     //结束进程
        }
        newSocketObj
    ->socket = s;
        newSocketObj
    ->listening = listening;
        
    return newSocketObj;
    }

    //插入一个SocketObj
    void InserSocketObj(SocketObj *obj)
    {
        obj
    ->next = obj->prev = NULL;
        
    if(g_pSocketList == NULL)
        {
            g_pSocketList 
    = g_pSocketEnd = obj;
        }
        
    else
        {
            obj
    ->prev = g_pSocketEnd;
            g_pSocketEnd
    ->next = obj;
            g_pSocketEnd 
    = obj;
        }
        g_nSocketCount
    ++;
    }
    //删除
    void RemoveSocketObj(SocketObj *obj)
    {
        
    if(obj->prev)
        {
            obj
    ->prev->next = obj->next;
        }
        
    if(obj->next)
        {
            obj
    ->next->prev = obj->prev;
        }
        
    if(obj == g_pSocketList)
        {
            g_pSocketList 
    = obj->next;
        }
        
    if(obj == g_pSocketEnd)
        {
            g_pSocketEnd 
    = obj->prev;
        }
        g_nSocketCount
    --;
        HeapFree(GetProcessHeap(),
    0,obj);
    }
  • 相关阅读:
    PHP:__get()、__set()、__isset()、__unset()、__call()、__callStatic()六个魔术方法
    概念:RPG游戏中两个兵种互相攻击的逻辑
    php怎么获取checkbox复选框的内容?
    20150724之问题
    Uploadify 之使用
    oneThink后台添加插件步骤详解
    针对各种浏览器,前端解决方案(持续更新...)
    解决IE8中select下拉列表文字上下不居中的问题
    针对IE6 7 8当独写样式
    document对象详解
  • 原文地址:https://www.cnblogs.com/8586/p/1441422.html
Copyright © 2011-2022 走看看