首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-05-03 
求大神解救...请详细回答,分数多多...C/C++ code/*****************************************************

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

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核心编程中,看下线程间的同步。最后套接字,其实只是一个标识。

热点排行