?? udphandler.cpp
字號:
// UDPHandler.cpp: implementation of the CUDPHandler class.
//
//////////////////////////////////////////////////////////////////////
#include "UDPHandler.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CUDPHandler::CUDPHandler() : m_lpNode(NULL)
{
}
CUDPHandler::~CUDPHandler()
{
LPOnlineNode lpNode;
while (m_lpNode != NULL)
{
lpNode = m_lpNode;
m_lpNode = m_lpNode->Next;
delete lpNode;
}
}
void CUDPHandler::InsertNode(const char * szIP, int iPort)
{
m_mutex.LockMutex();
LPOnlineNode lpNode = new OnLineNode;
strcpy(lpNode->szIP, szIP);
lpNode->port = iPort;
lpNode->Next = m_lpNode;
lpNode->Prev = NULL;
if (m_lpNode != NULL)
m_lpNode->Prev = lpNode;
m_lpNode = lpNode;
m_mutex.UnlockMutex();
}
void CUDPHandler::DeleteNode(const char * szIP, int iPort)
{
LPOnlineNode lpNode;
m_mutex.LockMutex();
lpNode = m_lpNode;
while (lpNode != NULL)
{
if (!strcmp(lpNode->szIP, szIP) && (lpNode->port == iPort))
{
if (lpNode->Prev != NULL)
lpNode->Prev->Next = lpNode->Next;
else
m_lpNode = lpNode->Next;
if (lpNode->Next != NULL)
lpNode->Next->Prev = lpNode->Prev;
delete lpNode;
return;
}
lpNode = lpNode->Next;
}
m_mutex.UnlockMutex();
}
bool CUDPHandler::UpdateMsg(const char* szFile, char iType)
{
char szMsg[MAX_PATH];
LPOnlineNode lpNode;
szMsg[0] = CMD_UPDATE_INDEX;
szMsg[1] = iType;
strcpy(szMsg + 2, szFile);
m_mutex.LockMutex();
lpNode = m_lpNode;
while (lpNode != NULL)
{
CSocketBase::SendUDP(szMsg, strlen(szMsg) + 1, lpNode->szIP, lpNode->port);
lpNode = lpNode->Next;
}
m_mutex.UnlockMutex();
return true;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -