CConnection.h
上传用户:young001
上传日期:2007-07-04
资源大小:33k
文件大小:1k
源码类别:

WEB邮件程序

开发平台:

Visual C++

  1. #ifndef CCONNECTION_H
  2. #define CCONNECTION_H
  3. #include <winsock.h>
  4. #include <stdio.h>
  5. #pragma comment(lib, "wsock32.lib") // search for wsock32 lib at compile time
  6. #pragma comment(lib, "mpr.lib") // search for mpr lib at compile time
  7. typedef void (*CALLBACKFUNC)(DWORD ptr);
  8. // another little class :)
  9. // (class itself is not thread-safe)
  10. class CError
  11. {
  12. long m_number;
  13. CError (long err);
  14. friend class CNetworking;
  15. friend class CConnection;
  16. friend class CSync;
  17. public:
  18. long GetErrorString (char* str, long len);
  19. };
  20. // class definition for CConnection
  21. // this class is thread-safe!
  22. // access to Tag is NOT synchronized!
  23. class CConnection
  24. {
  25. // used to cache the received data
  26. // this class is thread-safe!
  27. static long m_count;
  28. SOCKET m_socket;
  29. sockaddr_in m_addr;
  30. CError m_lasterror;
  31. // allow CNetworking to do stuff with this class
  32. public:
  33. void GetLocalIP(CString &sIP);
  34. void SetLastError (long err);
  35. BOOL HasConnectionDropped(void);
  36. CConnection ();
  37. CConnection (const char* host, unsigned short port);
  38. ~CConnection ();
  39. bool Connect (const char* host, unsigned short port);
  40. void Disconnect ();
  41. bool PeerInfo (char* host, int host_len, unsigned int* port);
  42. int Send (const char* buffer, int bufferlen);
  43. int Receive (char* buffer, int bufferlen);
  44. bool IsConnected ();
  45. void GetLastError (char* str, long len);
  46. DWORD Tag;
  47. };
  48. #endif