spxsock.h
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:4k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * spxsock.h
  3.  *
  4.  * SPX socket channel class
  5.  *
  6.  * Portable Windows Library
  7.  *
  8.  * Copyright (c) 1993-1998 Equivalence Pty. Ltd.
  9.  *
  10.  * The contents of this file are subject to the Mozilla Public License
  11.  * Version 1.0 (the "License"); you may not use this file except in
  12.  * compliance with the License. You may obtain a copy of the License at
  13.  * http://www.mozilla.org/MPL/
  14.  *
  15.  * Software distributed under the License is distributed on an "AS IS"
  16.  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  17.  * the License for the specific language governing rights and limitations
  18.  * under the License.
  19.  *
  20.  * The Original Code is Portable Windows Library.
  21.  *
  22.  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
  23.  *
  24.  * Portions are Copyright (C) 1993 Free Software Foundation, Inc.
  25.  * All Rights Reserved.
  26.  *
  27.  * Contributor(s): ______________________________________.
  28.  *
  29.  * $Log: spxsock.h,v $
  30.  * Revision 1.5  1999/03/09 02:59:51  robertj
  31.  * Changed comments to doc++ compatible documentation.
  32.  *
  33.  * Revision 1.4  1999/02/16 08:11:17  robertj
  34.  * MSVC 6.0 compatibility changes.
  35.  *
  36.  * Revision 1.3  1998/11/30 02:51:59  robertj
  37.  * New directory structure
  38.  *
  39.  * Revision 1.2  1998/09/23 06:21:29  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.1  1996/09/14 13:00:56  robertj
  43.  * Initial revision
  44.  *
  45.  */
  46. #define _PSPXSOCKET
  47. #ifdef __GNUC__
  48. #pragma interface
  49. #endif
  50. #include <ptlib/ipxsock.h>
  51. /** Create a socket channel that uses the SPX transport over the IPX
  52.    Protocol.
  53.  */
  54. class PSPXSocket : public PIPXSocket
  55. {
  56.   PCLASSINFO(PSPXSocket, PIPXSocket);
  57.   public:
  58.   /**@name Construction. */
  59.   //@{
  60.     /** Create an SPX protocol socket channel. If a remote machine address or
  61.        a "listening" socket is specified then the channel is also opened.
  62.        Note that the "copy" constructor here is really a "listening" socket
  63.        the same as the PSocket & parameter version.
  64.      */
  65.     PSPXSocket(
  66.       WORD port = 0             /// Port number to use for the connection.
  67.     );
  68.   //@}
  69.   /**@name Overrides from class PSocket. */
  70.   //@{
  71.     /** Listen on a socket for a remote host on the specified port number. This
  72.        may be used for server based applications. A "connecting" socket begins
  73.        a connection by initiating a connection to this socket. An active socket
  74.        of this type is then used to generate other "accepting" sockets which
  75.        establish a two way communications channel with the "connecting" socket.
  76.        If the #port# parameter is zero then the port number as
  77.        defined by the object instance construction or the
  78.        #PIPSocket::SetPort()# function.
  79.        @return
  80.        TRUE if the channel was successfully opened.
  81.      */
  82.     virtual BOOL Listen(
  83.       unsigned queueSize = 5,  /// Number of pending accepts that may be queued.
  84.       WORD port = 0,           /// Port number to use for the connection.
  85.       Reusability reuse = AddressIsExclusive /// Can/Cant listen more than once.
  86.     );
  87.     /** Open a socket to a remote host on the specified port number. This is an
  88.        "accepting" socket. When a "listening" socket has a pending connection
  89.        to make, this will accept a connection made by the "connecting" socket
  90.        created to establish a link.
  91.        The port that the socket uses is the one used in the #Listen()#
  92.        command of the #socket# parameter.
  93.        Note that this function will block until a remote system connects to the
  94.        port number specified in the "listening" socket.
  95.        @return
  96.        TRUE if the channel was successfully opened.
  97.      */
  98.     virtual BOOL Accept(
  99.       PSocket & socket          /// Listening socket making the connection.
  100.     );
  101.   //@}
  102.   protected:
  103.     virtual BOOL OpenSocket();
  104.     virtual const char * GetProtocolName() const;
  105. #ifdef DOC_PLUS_PLUS
  106. };
  107. #endif
  108. // Class declaration continued in platform specific header file ///////////////