DWORD WINAPI CserverDlg::ListenThread(LPVOID pParam) //监听线程
{
CserverDlg*server = (CserverDlg*)pParam;
ASSERT(server!=NULL);
(此处省略...)
client client;
client.ip=ip;
INT_PTR idx= server->m_client.Add(client);
client.clientthread = CreateThread(NULL, 0, clientthreadproc, &(server->m_client.GetAt(idx)), CREATE_SUSPENDED, NULL);
server->m_client.GetAt(idx).clientthread = client.clientthread;
ResumeThread(client.clientthread);
Sleep(100);
}
}
}
DWORD WINAPI CserverDlg::clientthreadproc(LPVOID pParam) //客户线程
{
CString strMsg;
client m_ClientItem = *(client *)pParam; //这个可以
//client *m_ClientItem = (client*)pParam;//使用这个提示访问内存异常,为什么
(此处省略...)
}
{
CserverDlg*server = (CserverDlg*)pParam;
ASSERT(server!=NULL);
(此处省略...)
client client;
client.ip=ip;
INT_PTR idx= server->m_client.Add(client);
client.clientthread = CreateThread(NULL, 0, clientthreadproc, &(server->m_client.GetAt(idx)), CREATE_SUSPENDED, NULL);
server->m_client.GetAt(idx).clientthread = client.clientthread;
ResumeThread(client.clientthread);
Sleep(100);
}
}
}
DWORD WINAPI CserverDlg::clientthreadproc(LPVOID pParam) //客户线程
{
CString strMsg;
client m_ClientItem = *(client *)pParam; //这个可以
//client *m_ClientItem = (client*)pParam;//使用这个提示访问内存异常,为什么
(此处省略...)
}