求大神解救.请详细回答,分数多多.解决方法

求大神解救...请详细回答,分数多多...
C/C++ code
/**************************************************************************************
                        这个是一个结构图...'||'为一个等号...
                        问题在下面结构图中...求解答...
                        另一个问题就是:CRITICAL_SECTION这个是什么?
            InitializeCriticalSection()    //这个函数初始化一个临界区,有什么作用
            EnterCriticalSection()    //按顺序访问,访问的是线程还是什么东西?
            LeaveCriticalSection()    //是否为EnterCriticalSection的退出????
**************************************************************************************/
            线程对象结构:
        typedef struc_THREAD_OBJ
        {
            HANDLE events[WSA_MAXIMUM_WAIT_EVENTS];    //记录当前线程要等待的事件对象句柄
            int nSocketCount;    //记录当前线程处理的套接字数量
            PSOCKET_OBJ pSockHeader;    //当前线程处理套接字对象列表,pSockHeader指向表头
            POSCKET_OBJ pSocketTail;    //pSockTail指向表位
            CRITICAL_SECTION cs;    //关键代码段变量,为的是同步对本结构的访问
            _THREAD_OBJ *pNext;    //指向下一个THREAD_OBJ对象,为的是连成一个表
        }THREAD_OBJ, *PTHREAD_OBJ;
        套接字对象:
        typedef struct_SOCKET_OBJ
        {
            SOCKET s;    //套接字句柄
            HANDLE event;    //与此套接字相关的事件对象句柄
            sockaddr_in addrRemote;    //客户端地址信息
            _SOCKET_OBJ *pNex;    //指向下一个SOCKET_OBJ对象,以连成一个表
        }SOCKET_OBJ, *PSOCKET_OBJ;
---------------------------------------------------
    (线程对象)          |                      nCount个                               |
----------------        ---------------------------
|   wEvent     |  ->    |   wEvent[0]   |   wEvent[1]   |   wEvent[2]   |   .......   |    
----------------        ---------------------------
|   nCout      |               ||              ||  (套接字对象) ||             || //问题: 这两个东西这么相等???     
----------------           ----------      ----------       ----------       ......
|   pHead      |           | socket |      | socket |       | socket |       ......
----------------           ----------      ----------       ----------       ......
|   pEnd       |           |  event |      |  event |       |  event |       ......
----------------           ----------      ----------       ----------       ......
|   *pNext     |           |  addr  |      |  addr  |       |  addr  |       ......
----------------           ----------      ----------       ----------       ......
    指  /                  | *pNext |      | *pNext |       | *pNext |       ......
   向  /                   ----------      ----------       ----------
      /                 |                      nCount个                               |
----------------        ---------------------------
|   wEvent     |  ->    |   wEvent[0]   |   wEvent[1]   |   wEvent[2]   |   .......   |
----------------        ---------------------------
|   nCout      |               ||              ||               ||             ||
----------------           ----------      ----------       ----------       ......
|   pHead      |           | socket |      | socket |       | socket |       ......
----------------           ----------      ----------       ----------       ......
|   pEnd       |           |  event |      |  event |       |  event |       ......
----------------           ----------      ----------       ----------       ......
|   *pNext     |           |  addr  |      |  addr  |       |  addr  |       ......
----------------           ----------      ----------       ----------       ......
  指向  /                   | *pNext |      | *pNext |       | *pNext |       ......
      /                     ----------      ----------       ----------


------解决方案--------------------
首先,如果你不懂,临界区这些东西的话,建议去看windows核心编程中,看下线程间的同步。最后套接字,其实只是一个标识。