CArray 数据存储
曹小白 2016-08-04 04:21:26 VC++6.0
使用CArray定义了一个动态数组:typedef CArray< CClient,CClient > ClientArray;
struct CClient{
SOCKET m_socket;
LPCTSTR m_ip;
UINT m_prot;
};
定义全局变量:ClientArray g_CorpAccount;
在主线程中使用该数组:却发现每次存入新数据时,之前存入的数据全部被覆盖,但是数组长度确实在增加,怀疑与指针有关,但是不知道从哪里下手,请大神指导!
主线程部分代码如下:
UINT ServerThread(LPVOID lpParameter)
{
////无关内容省略
while (!server->m_bStopServer)
{
//处理入站连接,接受一个连接请求
ClientAddrLength=sizeof(ClientAddr);
if ((server->sDialog=accept(server->sListen,(sockaddr*)&ClientAddr,&ClientAddrLength))==INVALID_SOCKET)
{
return 0;
}
//获取客户端地址端口信息
ClientIP=inet_ntoa(ClientAddr.sin_addr);//连入客户端的信息
ClientPort=ClientAddr.sin_port;//连入客户端的信息
CClient item;
item.m_socket=server->sDialog;
item.m_ip=ClientIP;
item.m_prot=ClientPort;
g_CorpAccount.Add(item);
/////////////////////////////////////////////////////////////////以下无关内容省略