⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udphandler.cpp

📁 图象处理
💻 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 + -