CTCPNetworkItemPtrArray m_NetworkItemBuffer; //空闲连接
CTCPNetworkItemPtrArray m_NetworkItemActive; //活动连接
CTCPNetworkItemPtrArray m_NetworkItemStorage; //存储连接
CTCPNetworkItemPtrArray m_TempNetworkItemArray; //临时连接
1.激活NetworkItem时候,系统首先从m_NetworkItemBuffer(空闲连接)找到尾部NetworkItem然后删除,同时把取到的NetworkItem放入到m_NetworkItemActive(活动连接)当中。当然如果空闲连接没有值的话就会新建一个NetworkItem放到m_NetworkItemStorage(存储连接)以及m_NetworkItemActive(活动连接)当中。此时NetworkItem的m_Index(索引)等于存储连接的个数。
2.获取NetworkItem时候,系统直接从m_NetworkItemStorage(存储连接)里面获取,传入m_Index(索引值)。该存储连接目前无删除操作,所以能保证索引值的增加。
3.释放NetworkItem时候,系统调用FreeNetworkItem(pTCPNetworkItem)时候会删除m_NetworkItemActive(活动连接)里面的Networkitem。同时会把该删除对象添加到m_NetworkItemBuffer(空闲连接)。
4.m_TempNetworkItemArray(临时连接)只用到群发请求,以及检测连接时候拷贝m_NetworkItemActive(活动连接)
附加:
m_wRountID只有在ResumeData()时候会增加,ResumeData只有在CloseScoket完成调用OnCloseCompleted()才会触发,该索引只增不减。调用CloseScoket会触发上面的第3点,释放NetworkItem。