Socket.h.svn-base
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:2k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. /*
  2.  *  OpenKore C++ Standard Library
  3.  *  Copyright (C) 2006  VCL
  4.  *
  5.  *  This library is free software; you can redistribute it and/or
  6.  *  modify it under the terms of the GNU Lesser General Public
  7.  *  License as published by the Free Software Foundation; either
  8.  *  version 2.1 of the License, or (at your option) any later version.
  9.  *
  10.  *  This library is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  *  Lesser General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU Lesser General Public
  16.  *  License along with this library; if not, write to the Free Software
  17.  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  18.  *  MA  02110-1301  USA
  19.  */
  20. // This file is necessary because the concrete Socket implementation class
  21. // is used by the concrete ServerSocket implementation class.
  22. #ifndef _OSL_WIN32_SOCKET_H_
  23. #define _OSL_WIN32_SOCKET_H_
  24. #define WIN32_LEAN_AND_MEAN
  25. #include <windows.h>
  26. #include <winsock2.h>
  27. namespace OSL {
  28. namespace _Intern {
  29. class InStream;
  30. class OutStream;
  31. /**
  32. * @internal
  33. * An implementation of Socket for Windows.
  34. */
  35. class WinSocket: public Socket {
  36. private:
  37. SOCKET fd;
  38. InStream *in;
  39. OutStream *out;
  40. public:
  41. /**
  42. * Create a new WinSocket object.
  43. *
  44. * @param address The address of the server to connect to.
  45. * @param port    The port of the server.
  46. * @pre address != NULL
  47. * @pre port > 0
  48. * @throws SocketException
  49. */
  50. WinSocket(const char *address, unsigned short port);
  51. /**
  52. * Create a new WinSocket object using the specified SOCKET.
  53. *
  54. * @pre sock != INVALID_SOCKET
  55. * @throws SocketException
  56. */
  57. WinSocket(SOCKET sock);
  58. virtual ~WinSocket();
  59. virtual InputStream *getInputStream() const;
  60. virtual OutputStream *getOutputStream() const;
  61. };
  62. } // namespace _Intern
  63. } // namespace OSL
  64. #endif /* _OSL_WIN32_SOCKET_H_ */