?? hlsock.cpp
字號:
// HLSock.cpp : implementation file
//
#include "stdafx.h"
#include "WS.h"
#include "HLSock.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLSock
CLSock::CLSock()
{
}
CLSock::~CLSock()
{
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CLSock, CSocket)
//{{AFX_MSG_MAP(CLSock)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CLSock member functions
void CLSock::OnAccept(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
CRWSock * rwSock;
rwSock=new CRWSock;
if(Accept( * rwSock))
{
m_RWSocks.AddTail(rwSock);
}
else
{
delete rwSock;
AfxMessageBox("調用Accept()失敗!");
}
CSocket::OnAccept(nErrorCode);
}
void CLSock::CloseAllSockets()
{
POSITION pos;
CRWSock * rwSock;
pos=m_RWSocks.GetHeadPosition();
while(pos!=NULL)
{
_DATA dat;
rwSock=(CRWSock * )m_RWSocks.GetNext(pos);
dat.m_bOnline=FALSE;
rwSock->Send(&dat,sizeof(dat));
CloseSocket(rwSock);
}
}
void CLSock::CloseSocket(CRWSock * pSocket)
{
pSocket->Close();
POSITION pos;
pos=m_RWSocks.Find(pSocket);
m_RWSocks.RemoveAt(pos);
if(pSocket!=NULL)
{
delete pSocket;
}
}
/////////////////////////////////////////////////////////////////////////////
// CRWSock
CRWSock::CRWSock()
{
}
CRWSock::~CRWSock()
{
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CRWSock, CSocket)
//{{AFX_MSG_MAP(CRWSock)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CRWSock member functions
void CRWSock::OnReceive(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
Receive(&m_Dat,sizeof(m_Dat));
::PostMessage(::AfxGetApp()->m_pMainWnd->m_hWnd,CLT_TALKING,(WPARAM)&m_Dat,0);
if(m_Dat.m_bOnline)
{
m_Dat.m_dbData=Calculate(m_Dat.m_dbData);
Send(&m_Dat,sizeof(m_Dat));
}
else
{
::PostMessage(::AfxGetApp()->m_pMainWnd->m_hWnd,CLT_CLOSE,(WPARAM)this,0);
}
CSocket::OnReceive(nErrorCode);
}
double CRWSock::Calculate(double x)
{
double re;
if(m_Dat.m_bAngular)
{
x=x/57.1;
re=sin(x);
}
else
{
re=sin(x);
}
return re;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -