在VC下能否通过数组或链表来提高WinPcap的写操作速度?
为了解决丢包的问题,提高写操作速度,可否用数组或链表来代替读一次写一次?
代码如下:
UINT ThreadReadData(LPVOID ThreadArg)
{
CDemoDlg* pDemoDlg = (CDemoDlg*)ThreadArg;
int k = 0;
ofstream ofs("X.dat", ios::app|ios::binary);
while(g_bRun)
{
//AfxMessageBox(_T("读取线程开始"));
pDemoDlg->m_DataRecv.GetData((u_char*)&pDemoDlg->m_RecvData, k);
if (g_bSaveData)
{
ofs.write((char*)&pDemoDlg->m_RecvData, k);
//ofs.write((char*)&pDemoDlg->m_RecvData, 10);
ofs.flush();
}
//Sleep(1);
}
ofs.close();
return 0;
}
[解决办法]
不要收到后就直接write,而是放到一个List等中,然后由另一个线程来慢慢写。
当前线程就不停地读取,然后push到List