📄 socksrv.cpp
字号:
// SockSrv.cpp : implementation file
//
#include "stdafx.h"
#include "DlgPswd.h"
#include "NetElectronClt.h"
#include "NetElectronCltDlg.h"
#include "SockSrv.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSockSrv
CSockSrv::CSockSrv()
{
}
CSockSrv::~CSockSrv()
{
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CSockSrv, CSocket)
//{{AFX_MSG_MAP(CSockSrv)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CSockSrv member functions
void CSockSrv::OnAccept(int nErrorCode)
{
Log ( "接受客户请求,代码 - %d", nErrorCode );
CSocket::OnAccept(nErrorCode);
}
void CSockSrv::OnClose(int nErrorCode)
{
Log ( "客户连接已经关闭" );
if ( g_pNetElectronCltDlg )
g_pNetElectronCltDlg->OnClose();
CSocket::OnClose(nErrorCode);
}
void CSockSrv::OnConnect(int nErrorCode)
{
Log ( "和客户建立连接,代码 - %d", nErrorCode );
CSocket::OnConnect(nErrorCode);
}
void CSockSrv::OnReceive(int nErrorCode)
{
char buf[1024] = {0};
int nLen = Receive ( buf, sizeof(buf) );
HandleWhenReceivedData ( buf, nLen );
CSocket::OnReceive(nErrorCode);
}
// 处理收到的数据
void CSockSrv::HandleWhenReceivedData(char *pData, int nLen)
{
const char strErrPassword[] = "\r";
Log ( "收到数据:%s", Data2String(pData,nLen) );
// 需要密码
if ( strcmp ( pData, "Password:" ) == 0 )
{
CDlgPswd dlg;
if ( dlg.DoModal() == IDOK )
{
Send ( dlg.m_csPassword, dlg.m_csPassword.GetLength()+1 );
}
else
{
Send ( strErrPassword, strlen ( strErrPassword ) );
}
}
else if ( sizeof(t_JiaDianState) == nLen )
{
ASSERT ( g_pNetElectronCltDlg );
g_pNetElectronCltDlg->SetNewStatus ( (t_JiaDianState*)pData );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -