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 Listen( int backlog );
  38. void Bind( const SOCKADDR_IN &address );
  39. void Bind( const struct sockaddr &address, size_t addressLength );
  40. private:
  41. SOCKET m_socket;
  42. /*
  43.  * No copies do not implement
  44.  */
  45. CSocket( const CSocket &rhs );
  46. CSocket &operator=( const CSocket &rhs );
  47. };
  48. /*
  49.  * CSocket::InternetAddress
  50.  */
  51. class CSocket::InternetAddress : public SOCKADDR_IN
  52. {
  53. public:
  54. InternetAddress( unsigned long address, unsigned short port );
  55. };
  56. /*
  57.  * CSocket::Exception
  58.  */
  59. class CSocket::Exception : public CWin32Exception
  60. {
  61. friend class CSocket;
  62. private:
  63. Exception( const _tstring &where, DWORD error );
  64. };
  65. } // End of namespace OnlineGameLib
  66. } // End of namespace Win32
  67. #endif //__INCLUDE_SOCKET_H__