ServerLink.h
上传用户:hkcoast
上传日期:2007-01-12
资源大小:979k
文件大小:2k
源码类别:

手机短信编程

开发平台:

Visual C++

  1. // ServerLink.h: interface for the CServerLink class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_SERVERLINK_H__10F3112D_CD2D_4245_BBE8_165E24B7B2DB__INCLUDED_)
  5. #define AFX_SERVERLINK_H__10F3112D_CD2D_4245_BBE8_165E24B7B2DB__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "common.h"
  10. #include "winsock2.h"
  11. #include "packetbase.h"
  12. class SMPPLIB_DECLSPEC CServerLink  
  13. {
  14. public:
  15. CServerLink();
  16. CServerLink(CString svrip);
  17. CServerLink(CString svrip, int port);
  18. virtual ~CServerLink();
  19. bool open();
  20. void close();
  21. bool isConnected();
  22. CString getServerIP();
  23. int getServerPort();
  24. void init(CString svrip, int port);
  25. int send(PBYTE data, uint32 datalen);
  26. bool sendPacket(CPacketBase &pak);
  27. protected:
  28. CString m_ServerIP;
  29. int m_ServerPort;
  30. SOCKET m_nSocket;
  31. bool m_bConnected;
  32. HANDLE m_hDisconnectEvent;
  33. CWinThread *m_pIOWinThread;
  34. unsigned m_dwThreadId;
  35. HANDLE m_hThread;
  36. WSAEVENT m_hEvent;
  37. static UINT IOThreadProc(LPVOID pParam);
  38. unsigned IOThreadRun();
  39. bool OnRead();
  40. bool OnClose();
  41. virtual void parse_packet(PBYTE pby, int nsz) = 0;
  42. CRITICAL_SECTION m_cs;
  43. protected:
  44. HANDLE m_hKillEvent;
  45. void (__stdcall *m_pProcessPacket)(CPacketBase *pak, LPVOID param);
  46. LPVOID m_Param;
  47. private:
  48. int m_nBlockSize;
  49. int m_nTotalRead;
  50. BOOL m_bReadHeader;
  51. public:
  52. void registerProcessPacket(void(__stdcall *start_address)(CPacketBase *pak, LPVOID param), LPVOID param);
  53. };
  54. #endif // !defined(AFX_SERVERLINK_H__10F3112D_CD2D_4245_BBE8_165E24B7B2DB__INCLUDED_)