Socket.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /********************************************************************
  2. created: 2003/02/14
  3. file base: Socket
  4. file ext: h
  5. author: liupeng
  6. purpose:
  7. *********************************************************************/
  8. #ifndef __INCLUDE_SOCKET_H__
  9. #define __INCLUDE_SOCKET_H__
  10. #if defined (_MSC_VER) && (_MSC_VER >= 1020)
  11. #pragma once
  12. #endif
  13. #include <winsock2.h>
  14. #include "Win32Exception.h"
  15. #include "tstring.h"
  16. /*
  17.  * namespace OnlineGameLib::Win32
  18.  */
  19. namespace OnlineGameLib {
  20. namespace Win32 {
  21. /*
  22.  * CSocket
  23.  */
  24. class CSocket  
  25. {
  26. public:
  27. class InternetAddress;
  28. class Exception;
  29. CSocket();
  30. explicit CSocket( SOCKET theSocket );
  31. ~CSocket();
  32. void Attach( SOCKET theSocket );
  33. SOCKET Detatch();
  34. void Close();
  35. void AbortiveClose();
  36. void Shutdown( int how );
  37. void Connect( const SOCKADDR_IN &address );
  38. void Connect( const struct sockaddr &address, size_t addressLength );
  39. private:
  40. SOCKET m_socket;
  41. /*
  42.  * No copies do not implement
  43.  */
  44. CSocket( const CSocket &rhs );
  45. CSocket &operator=( const CSocket &rhs );
  46. };
  47. /*
  48.  * CSocket::InternetAddress
  49.  */
  50. class CSocket::InternetAddress : public SOCKADDR_IN
  51. {
  52. public:
  53. InternetAddress( 
  54. const _tstring &addressToConnectServer,
  55. unsigned short port );
  56. };
  57. /*
  58.  * CSocket::Exception
  59.  */
  60. class CSocket::Exception : public CWin32Exception
  61. {
  62. friend class CSocket;
  63. private:
  64. Exception( const _tstring &where, DWORD error );
  65. };
  66. } // End of namespace OnlineGameLib
  67. } // End of namespace Win32
  68. #endif //__INCLUDE_SOCKET_H__