www.pudn.com > 17123337.rar > CliSocket.cpp
// CliSocket.cpp : implementation file
//
#include "stdafx.h"
#include "TCPClient.h"
#include "CliSocket.h"
#include "TCPClientDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCliSocket
CCliSocket::CCliSocket()
{
}
CCliSocket::~CCliSocket()
{
Close();
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CCliSocket, CSocket)
//{{AFX_MSG_MAP(CCliSocket)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CCliSocket member functions
void CCliSocket::OnReceive(int iErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
BYTE szBuf[2048];
BYTE szDSP[8192+1];
int iLen;
memset(szBuf, 0, sizeof(szBuf));
if ( (iLen=Receive((char *)szBuf, sizeof(szBuf))) == SOCKET_ERROR )
{
iLen = GetLastError();
wsprintf((char *)szBuf, "Recv Data Error:%d", iLen);
AfxGetMainWnd()->MessageBox((char *)szBuf, "½ستص´يخَ", MB_OK|MB_ICONERROR);
}
else
{
char szTemp[8];
memset(szDSP, 0, sizeof(szDSP));
for(int i=0; i0x7E && szBuf[i]<0xA1) )
{
wsprintf(szTemp, "\\x%02X", szBuf[i]);
strcat((char *)szDSP, szTemp);
}
else if (szBuf[i]=='\\')
{
strcat((char *)szDSP, "\\\\");
}
else if (szBuf[i]>=0xA1 && szBuf[i+1]>=0xA1)
{
szDSP[strlen((char *)szDSP)] = szBuf[i];
szDSP[strlen((char *)szDSP)] = szBuf[i+1];
i++;
}
else if (szBuf[i]>=0xA1 && szBuf[i+1]<0xA1)
{
wsprintf(szTemp, "\\x%02X", szBuf[i]);
strcat((char *)szDSP, szTemp);
}
else
{
szDSP[strlen((char *)szDSP)] = szBuf[i];
}
}
m_pDoc->WriteRecvData((char *)szDSP);
}
CSocket::OnReceive(iErrorCode);
}