コード例 #1
0
ファイル: UdpClient.cpp プロジェクト: buxinqiufeng/UdpSocket
void *UdpClient::DataThread(void * pParam)
{
    if(null == pParam) return null;

    UdpClient *pThis = (UdpClient*)pParam;

    pThis->mIsDataThreadRunnung = true;
    while(1)
    {
        if(!pThis->mIsConnecting)
            break;
        if(!pThis->mDataList.empty())
        {
            pthread_mutex_lock(&pThis->mMutex);
            string msg = pThis->mDataList.front();
            pThis->mDataList.pop_front();
            pthread_mutex_unlock(&pThis->mMutex);
            if(!pThis->mMsgHdlr) pThis->mMsgHdlr((void *)msg.c_str());
            pThis->OnRecvMessage(msg);
        }
        usleep(100);
    }

    pThis->mIsDataThreadRunnung = false;
    return null;
}