POP.CPP
上传用户:chenhai826
上传日期:2007-04-11
资源大小:72k
文件大小:1k
源码类别:

破解

开发平台:

Visual C++

  1. // Pop.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "Pop.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. //////////////////////////////////////////////////////////////////////
  11. // CPop Class
  12. //////////////////////////////////////////////////////////////////////
  13. CPop::CPop()
  14. {
  15. m_PopServer.Create();
  16. }
  17. CPop::~CPop()
  18. {
  19. m_PopServer.Close();
  20. }
  21. int CPop::Connect(CString & Host, CString & User, int Password)
  22. {
  23. CString str;
  24. int err;
  25. if (!m_PopServer.Connect(Host))
  26. return REPORT_CONNECT_ERROR;
  27. if((err = CheckResponse())!=1)
  28. return (err==0)?REPORT_CONNECT_ERROR:REPORT_BAD_OTHER;
  29. str.Format("USER %srn",User);
  30. m_PopServer.Send(str.GetBuffer(100),str.GetLength());
  31. if((err=CheckResponse())!=1)
  32. return (err==0)?REPORT_BAD_USER:REPORT_BAD_OTHER;
  33. str.Format("PASS %drn",Password);
  34. m_PopServer.Send(str.GetBuffer(100),str.GetLength()); 
  35. if ((err=CheckResponse())!=1)
  36. return (err==0)?REPORT_BAD_PASSWORD:REPORT_BAD_OTHER;
  37. return REPORT_SUCCEED;
  38. }
  39. int CPop::CheckResponse()
  40. {
  41. char buf [512];
  42. int i = m_PopServer.Receive(buf, sizeof(buf));
  43. if(i == SOCKET_ERROR)
  44. return REPORT_BAD_OTHER;
  45. return buf[0] != '-';
  46. }
  47. void CPop::Disconnect(void)
  48. {
  49. m_PopServer.Send("QUIT rn", strlen("QUIT rn")); 
  50. }