1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2000-2002 by the OpenSG Forum *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
37 \*---------------------------------------------------------------------------*/
39 #ifndef _DGRAMSOCKET_H_
40 #define _DGRAMSOCKET_H_
45 //---------------------------------------------------------------------------
47 //---------------------------------------------------------------------------
49 #include "OSGBaseDef.h"
50 #include "OSGSocketException.h"
51 #include "OSGSocketAddress.h"
52 #include "OSGSocket.h"
58 /*! \ingroup GrpBaseNetwork
59 \ingroup GrpBaseNetworkSockets
60 \ingroup GrpLibOSGBase
63 class OSG_BASE_DLLMAPPING DgramSocket
:public Socket
65 /*========================== PUBLIC =================================*/
68 /*---------------------------------------------------------------------*/
69 /*! \name Constructors */
73 DgramSocket(const DgramSocket
&source
);
76 /*---------------------------------------------------------------------*/
77 /*! \name open/close */
80 virtual void open (void);
81 virtual void close(void);
84 /*---------------------------------------------------------------------*/
85 /*! \name read, write */
88 int recvFromRaw( void *buf
,
90 SocketAddress
&from
);
92 int recvFrom ( Dgram
&buf
,
93 SocketAddress
&from
);
94 int peekFrom ( void *buf
,
96 SocketAddress
&from
);
97 int recvFrom ( NetworkMessage
&msg
,
98 SocketAddress
&from
);
99 int sendTo (const void *buf
,
101 const SocketAddress
&to
);
102 int sendTo ( NetworkMessage
&msg
,
103 const SocketAddress
&to
);
106 /*---------------------------------------------------------------------*/
107 /*! \name multicast */
110 void join (const SocketAddress
&group
,
111 const SocketAddress
&interf
=
112 SocketAddress(SocketAddress::ANY
));
113 void leave (const SocketAddress
&group
,
114 const SocketAddress
&interf
=
115 SocketAddress(SocketAddress::ANY
));
116 void setTTL ( unsigned char ttl
);
117 void setMCastInterface(const SocketAddress
&interf
);
120 /*---------------------------------------------------------------------*/
121 /*! \name assignment */
124 const DgramSocket
& operator =(const DgramSocket
&source
);
128 /*========================= PROTECTED ===============================*/
131 /*========================== PRIVATE ================================*/
134 typedef Socket Inherited
;