www.pudn.com > IP_phone.rar > SendSocket.cpp


/**********************************************************/ 
/*类名:CSendSocket                                       */ 
/*简述:用于发送的UDPSocket                               */ 
/**********************************************************/ 
// SendSocket.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "..\NC_Client.h" 
#include "SendSocket.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CSendSocket 
 
CSendSocket::CSendSocket() 
{ 
	m_pFrame = (struct Frame *)m_cBuffer; 
	m_pFrame->iIndex = 0; 
	m_bIni = FALSE; 
} 
 
CSendSocket::~CSendSocket() 
{ 
} 
 
// Do not edit the following lines, which are needed by ClassWizard. 
#if 0 
BEGIN_MESSAGE_MAP(CSendSocket, CAsyncSocket) 
	//{{AFX_MSG_MAP(CSendSocket) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
#endif	// 0 
 
///////////////////////////////////////////////////////////////////////////// 
// CSendSocket member functions 
///////////////////////////////////////////////////////////////////////////// 
//初始化 
BOOL CSendSocket::Ini() 
{ 
	if (m_bIni) 
		return FALSE; 
 
	//创建UDP Socket 
	if (!this->Create (NULL,SOCK_DGRAM)) 
	{ 
		AfxMessageBox("sendsocket ini error!"); 
		return FALSE; 
	}; 
 
	m_bIni = TRUE; 
	return TRUE; 
} 
///////////////////////////////////////////////////////////////////////////// 
//设定目标IP 
void CSendSocket::SetIp(CString ip) 
{ 
	m_ip=ip; 
} 
///////////////////////////////////////////////////////////////////////////// 
//设定目标PORT 
void CSendSocket::SetPort(int temp_port) 
{ 
	m_port=temp_port; 
} 
///////////////////////////////////////////////////////////////////////////// 
//重载Send() 
int CSendSocket::Send(const void* lpBuf, int nBufLen, int nFlags)  
{ 
	/*//加入序列号 
	m_pFrame->iIndex++; 
	memcpy(m_cBuffer+sizeof(struct Frame),lpBuf,nBufLen); 
	*/ 
	memcpy(m_cBuffer,lpBuf,nBufLen); 
	 
	return CAsyncSocket::SendTo(m_cBuffer,nBufLen,m_port,m_ip,nFlags); 
} 
///////////////////////////////////////////////////////////////////////////// 
//release 
BOOL CSendSocket::CloseSocket() 
{ 
	if (!m_bIni) 
		return FALSE; 
 
	CAsyncSocket::Close (); 
	m_bIni = FALSE; 
	return TRUE; 
} 
/////////////////////////////////////////////////////////////////////////////