📄 recsocket.cpp
字号:
// RecSocket.cpp : implementation file
//
#include "stdafx.h"
#include "RecSocket.h"
#include "head.h"
#include "AudioCode.h"
#include "WaveOut.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRecSocket
extern CAudioCode g_ACode;
extern CWaveOut *g_pOut;
//构造函数
CRecSocket::CRecSocket()
{
m_bIni = FALSE;
m_pFrame = (struct Frame *)m_cBuffer;
}
//析构函数
CRecSocket::~CRecSocket()
{
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CRecSocket, CSocket)
//{{AFX_MSG_MAP(CRecSocket)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CRecSocket member functions
//初始化
BOOL CRecSocket::Ini()
{
//已经初始化
if (m_bIni)
//返回
return FALSE;
//创建数据报类型的套接字
if (!Create (TALK_REC_PORT,SOCK_DGRAM))
//返回
return FALSE;
//设置初始化完成标记
m_bIni = TRUE;
//返回
return TRUE;
}
void CRecSocket::OnReceive(int nErrorCode)
{
//接收数据长度
m_iLen = sizeof(m_cBuffer);
//接收数据
m_iLen = this->Receive (m_pFrame,m_iLen);
//排序
m_sort .ReceiveData ((char *)m_pFrame,m_iLen);
//静态变量
static int i = 0;
i++;
//调用基类OnReceive()函数
CSocket::OnReceive(nErrorCode);
}
//关闭套接字
BOOL CRecSocket::CloseSocket()
{
//已经关闭
if (!m_bIni)
return FALSE;
//设置套接字关闭标记
m_bIni = FALSE;
//调用基类Close ()函数
CSocket::Close ();
//返回
return TRUE;
}
void CRecSocket::Play(char *pBuffer, int iLen)
{
//解码输出长度
int iOut;
iOut = sizeof(m_cOut);
//解码
g_ACode.DecodeAudioData (pBuffer,iLen,m_cOut,&iOut);
//播放
g_pOut->Play (m_cOut,iOut);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -