WinSockHelper.h
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////////////////////
  2. // General utilities : WinSock helper classes
  3. //
  4. // Copyright (c) 2003 by Morning
  5. // http://morningspace.51.net
  6. // mailto:moyingzz@etang.com
  7. //
  8. // Permission to use, copy, modify, distribute and sell this program for any 
  9. // purpose is hereby granted without fee, provided that the above copyright 
  10. // notice appear in all copies and that both that copyright notice and this 
  11. // permission notice appear in supporting documentation.
  12. //
  13. // It is provided "as is" without express or implied warranty.
  14. ////////////////////////////////////////////////////////////////////////////////
  15. #ifndef _WINSOCK_HELPER_H_
  16. #define _WINSOCK_HELPER_H_
  17. //
  18. #include <exception>
  19. #include <string>
  20. // #include <winsock2.h>
  21. //
  22. namespace MUtils {
  23. class WinSockException : public std::exception
  24. {
  25. public:
  26.     WinSockException(const std::string message = "")
  27.      : _message(message)
  28.     {
  29.     }
  30.     const char *what() const throw ()
  31.     {
  32.         return _message.c_str();
  33.     }
  34. private:
  35.     std::string _message;
  36. };
  37. class WinSockHelper
  38. {
  39. public:
  40.     WinSockHelper()
  41.     {
  42.         WSADATA wsaData;
  43.         int result = WSAStartup(0x0002, &wsaData);
  44.         if ( result != 0 )
  45.         {
  46.             throw WinSockException("WSAStartup error");
  47.         }
  48.         if ( wsaData.wVersion != 0x0002)
  49.         {
  50.             WSACleanup( );
  51.             throw WinSockException("Winsock version not support");
  52.         }
  53.     }
  54.     ~WinSockHelper() throw()
  55.     {
  56.         WSACleanup();
  57.     }
  58. };
  59. } // namespace MUtils
  60. #endif // _WINSOCK_HELPER_H_