64,680
社区成员
发帖
与我相关
我的任务
分享
//这个是服务器端发数据包的线程
//是这样的,当m_lists有数据的时候,才进行发送数据,每隔300毫秒就要检测一下
//有没有人能改进一下,当m_lists有数据的时候,由外面的线程通知一下这个发送的线程,如何实现呢
DWORD WINAPI CCsrvSocket::SendDataThead(LPVOID lpParam)
{
CCsrvSocket *pSrvSocket = (CCsrvSocket *)lpParam;
if (pSrvSocket==NULL)
{
printf("发送数据线程开辟出错了\n");
return 0;
}
LPDATA lpdata,lp;
while (TRUE)
{
if (pSrvSocket->m_lists.IsEmpty()==false)
{
lpdata = pSrvSocket->m_lists.GetHeadPosition();
while(lpdata)
{
SendDataPage &tmp = pSrvSocket->m_lists.GetAt(lpdata);
pSrvSocket->SendData(tmp.socket,tmp.szBuffer,tmp.dwLen);
SAFE_DELETE(tmp.szBuffer);
lp = lpdata;
pSrvSocket->m_lists.GetNext(lpdata);
pSrvSocket->m_lists.RemoveAt(lp);
}
}
Sleep(300);
}
return 0 ;
}