udpdata.cpp
来自「Viaual C++实战演练一书的源代码,对于C++程序员有实际的借鉴意义.」· C++ 代码 · 共 70 行
CPP
70 行
// UdpData.cpp : implementation file
//
#include "StdAfx.h"
#include "Demo3.h"
#include "UdpData.h"
#include "Demo3Doc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CUdpData
CUdpData::CUdpData(CDemo3Doc* doc)
{
m_pDoc = doc;
}
CUdpData::~CUdpData()
{
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CUdpData, CAsyncSocket)
//{{AFX_MSG_MAP(CUdpData)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CUdpData member functions
void CUdpData::OnReceive(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
char lpBuf[MAXMESSAGELENGTH];
int i, j;
while( i = Receive(lpBuf, MAXMESSAGELENGTH) > 0 )
{
m_pDoc->ProcessPendingRead(lpBuf, i);
switch(*(short*)lpBuf)
{
case 0x10:
for(j=0; j<4; j++)
if( (j != m_pDoc->m_nSelected) && (m_pDoc->m_nMustResend & 1<<j) )
{
SendTo(lpBuf, sizeof(TRACK0_10H), InterNetUdpPort[j], InternetAddress[j]);
}
break;
case 0x11:
for(j=0; j<4; j++)
if( (j != m_pDoc->m_nSelected) && (m_pDoc->m_nMustResend & 1<<j) )
{
SendTo(lpBuf, sizeof(TRACK1_11H), InterNetUdpPort[j], InternetAddress[j]);
}
break;
}
}
CAsyncSocket::OnReceive(nErrorCode);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?