Files
coco df489d5640 a
2026-07-03 16:05:30 +08:00

76 lines
2.2 KiB
C++

// TcpClient.h: interface for the CTcpClient class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TCPCLIENT_H__044BB3D2_8F93_47F9_808D_D0D08D49539C__INCLUDED_)
#define AFX_TCPCLIENT_H__044BB3D2_8F93_47F9_808D_D0D08D49539C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <WinSock2.h>
#include <Windows.h>
#include <winsock.h>
#include <WS2tcpip.h>
#include "Constant.h"
#include "CtrlProtocolDef.h"
extern int g_iUILanguage;
class CTcpClient
{
public:
CTcpClient();
virtual ~CTcpClient();
void SetSocketBuf(int iSndBuf, int iRcvBuf){m_iSndBuf = iSndBuf; m_iRcvBuf = iRcvBuf;}
bool CloseConnect();
bool GetConnectStatus();
bool Disconnect();
bool ClearRecvBuffer();
//函数
virtual bool Initialize() {return InitailTcp();}
virtual bool ConnectToServer(CString strIP, WORD wPort);
virtual bool ReConnect();
virtual int RecvRspMsg(char* pData, int* pLen,int iMaxLen, int iTimeout)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("不支持RecvRspMsg"));
else
MessageBoxEx(NULL, _T("Unsupport RecvRspMsg."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return 0;
}
virtual bool SendCtrlInfo(const char*pCtrlHeader, const char* pData, WORD wDataLen,BYTE DataType=1)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("不支持SendCtrlInfo"));
else
MessageBoxEx(NULL, _T("Unsupport SendCtrlInfo."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return 0;
}
virtual int RecvCtrlMsg(char* pData, int* pLen, int iMaxLen, int iTimeout){return 0;}
virtual int GetCurrCtrlCmd(){return 0;}
virtual bool InitialClient(){return true;}
virtual UINT32 GetPlcAddr(){return 0;}
protected:
bool InitailTcp();
bool ConnectServer(CString strAddr, WORD wPort);
int SendData(const char*pData, int iLen);
bool RecvData(char*pData, int iLen,int &iActualLen);
protected:
CString m_strIP;
WORD m_wPort;
int m_iSndBuf;
int m_iRcvBuf;
SOCKET m_sockClient;
bool m_bIsConnect;
bool m_bIsInitialed;
char *m_pClearRcvBuf;
};
#endif // !defined(AFX_TCPCLIENT_H__044BB3D2_8F93_47F9_808D_D0D08D49539C__INCLUDED_)