// 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 #include #include #include #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_)