123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- #ifndef __ICLIENT_IMPL_HEADER__
- #define __ICLIENT_IMPL_HEADER__
- #pragma once
- #include <afxwin.h>
- #include <atlbase.h>
- #include "CritSection.h"
- #include "SocketHandle.h"
- #include "SocketClientImpl.h"
- #include "Client2SrvType.h"
- #if 1
- #define RemoteSvr _T("lijiafz.vicp.net")
- #else
- #define RemoteSvr _T("192.168.1.31")
- #endif
- #define CALCDATALEN(x) (x+sizeof(STProtocolheader)+sizeof(STProtocoltail))
- class IClientImpl : public ISocketClientHandler
- {
- typedef SocketClientImpl<ISocketClientHandler> CSocketClient;
- friend CSocketClient;
- public:
- IClientImpl();
- ~IClientImpl();
-
- void StartReConnectSrvThread();
- static DWORD WINAPI ReConnectSrvThread(LPVOID pInstance);
- protected:
- virtual void OnThreadBegin(CSocketHandle* pSH);
- virtual void OnThreadExit(CSocketHandle* pSH);
- virtual void OnDataReceived(CSocketHandle* pSH, const BYTE* pbData, DWORD dwCount, const SockAddrIn& addr);
- virtual void OnConnectionDropped(CSocketHandle* pSH);
- virtual void OnConnectionError(CSocketHandle* pSH, DWORD dwError);
- protected:
- int m_nMode;
- int m_nSockType;
-
- TCHAR m_SvrAddr[MAX_PATH];
-
- TCHAR m_SvrPort[MAX_PATH];
-
- HANDLE m_hReConnectSrvThreadHandle;
-
- HANDLE m_hRunObject;
-
- void _cdecl AppendText(LPCTSTR lpszFormat, ...);
- void GetAddress(const SockAddrIn& addrIn, CString& rString) const;
- bool GetDestination(SockAddrIn& addrIn) const;
- bool SetupMCAST();
-
-
-
- void ToprocessRecivebuf(IN CSocketHandle *sockHandle, IN const BYTE* pReceivebuf, IN DWORD dwReceiveSize);
- public:
- BOOL m_bRecevie;
- BOOL m_bStopbeat;
- BOOL m_bSocket;
- CSocketClient m_SocketClient;
- BOOL Initialize();
- BOOL ConnectServer(LPCTSTR strAddr, LPCTSTR strPort);
- void DisConnectServer();
- void SendMsg(void *pMsg,const int nLen);
- BOOL SolveDBError();
- public:
-
- BOOL LoginRemoteSvrRequest();
- BOOL LoginLocalSvrRequest();
-
- void LoginRemoteSvrResponse(void *pLoginResult);
- void LoginLocalSvrResponse(void *pLoginResult);
-
- BOOL ChatRemoteSvrMessageRequest(void *szDataBuf, int nDataLen);
- BOOL ChatLocalSvrMessageRequest(void *szDataBuf, int nDataLen);
-
- void ChatRemoteSvrMessageResponse(void *pResponse);
- void ChatLocalSvrMessageResponse(void *pResponse);
- void DataToArray(IN BYTE *pData, IN CONST DWORD &dwLength, IN CArray<CStringArray, CStringArray>*List1array);
- public:
- DWORD m_dwCurRecive;
- DWORD m_dwSumRecive;
- BYTE *m_pRecivebuf;
- DWORD m_dwSendCode;
- SENDHEAD m_tSendhead;
- public:
- std::vector<unsigned char> _data;
- void ReAlloc(size_t count){ _data.resize(count);}
- void Free()
- {
- _data.clear();
- }
- size_t BufferSize() const {return _data.size();}
- operator LPBYTE() { return &_data[0]; }
- };
- #endif
|