Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

ost::UDPTransmit Class Reference

Representing half of a two-way UDP connection, the UDP transmitter can broadcast data to another selected peer host or to an entire subnet. Unreliable Datagram Peer Associations. More...

#include <socket.h>

Inheritance diagram for ost::UDPTransmit::

ost::UDPSocket ost::UDPDuplex List of all members.

Public Methods

int Transmit (const char *buffer, size_t len)
 Transmit "send" to use "connected" send rather than sendto. More...

bool isOutputReady (unsigned long timeout=0l)
 See if output queue is empty for sending more packets. More...

sockerror_t setRouting (bool enable)
sockerror_t setTypeOfService (socktos_t tos)
sockerror_t setBroadcast (bool enable)

Protected Methods

 UDPTransmit ()
 Create a UDP transmitter. More...

 UDPTransmit (const InetAddress &bind, tpport_t port=5005)
 Create a UDP transmitter, bind it to a specific interface and port address so that other UDP sockets on remote machines (or the same host) may find and send UDP messages to it, and associate it with a given port on a peer host. More...

sockerror_t Connect (const InetHostAddress &host, tpport_t port)
 Associate this socket with a specified peer host. More...

sockerror_t Connect (const BroadcastAddress &subnet, tpport_t port)
 Associate this socket with a subnet of peer hosts for subnet broadcasting. More...

sockerror_t Connect (const InetMcastAddress &group, tpport_t port)
 Associate this socket with a multicast group. More...

sockerror_t Disconnect (void)
 Disassociate this socket from any host connection. More...

int Send (const void *buf, int len)
 Transmit "send" to use "connected" send rather than sendto. More...

void endTransmitter (void)
 Stop transmitter. More...

SOCKET getTransmitter (void)
sockerror_t setMulticast (bool enable)
sockerror_t setTimeToLive (unsigned char ttl)

Detailed Description

Representing half of a two-way UDP connection, the UDP transmitter can broadcast data to another selected peer host or to an entire subnet. Unreliable Datagram Peer Associations.

Author:
David Sugar <dyfet@ostel.com>


Constructor & Destructor Documentation

ost::UDPTransmit::UDPTransmit   [protected]
 

Create a UDP transmitter.

ost::UDPTransmit::UDPTransmit const InetAddress &   bind,
tpport_t   port = 5005
[protected]
 

Create a UDP transmitter, bind it to a specific interface and port address so that other UDP sockets on remote machines (or the same host) may find and send UDP messages to it, and associate it with a given port on a peer host.

On failure to bind, an exception is thrown. This class is only used to build the UDP Duplex.

Parameters:
bind   address to bind this socket to.
port   number to bind this socket to.
port   number on peer host to associate with.


Member Function Documentation

sockerror_t ost::UDPTransmit::Connect const InetMcastAddress &   group,
tpport_t   port
[protected]
 

Associate this socket with a multicast group.

Returns:
0 on success, -1 on error.
Parameters:
mgroup   address of the multicast group to send to.
port   port number

sockerror_t ost::UDPTransmit::Connect const BroadcastAddress &   subnet,
tpport_t   port
[protected]
 

Associate this socket with a subnet of peer hosts for subnet broadcasting.

The server must be able to assert broadcast permission for the socket.

Returns:
0 on success, -1 on error.
Parameters:
subnet   address to broadcast into.

sockerror_t ost::UDPTransmit::Connect const InetHostAddress &   host,
tpport_t   port
[protected]
 

Associate this socket with a specified peer host.

The port number from the constructor will be used. All UDP packets will be sent to and received from the specified host.

Returns:
0 on success, -1 on error.
Parameters:
host   address to connect socket to.

Reimplemented in ost::UDPDuplex.

sockerror_t ost::UDPTransmit::Disconnect void   [protected]
 

Disassociate this socket from any host connection.

No data should be read or written until a connection is established.

Reimplemented in ost::UDPDuplex.

int ost::UDPTransmit::Send const void *   buf,
int   len
[inline, protected]
 

Transmit "send" to use "connected" send rather than sendto.

Returns:
number of bytes sent.
Parameters:
address   of buffer to send.
len   of bytes to send.

int ost::UDPTransmit::Transmit const char *   buffer,
size_t   len
[inline]
 

Transmit "send" to use "connected" send rather than sendto.

Note:
Windows does not support MSG_DONTWAIT, so it is defined as 0 on that platform.
Returns:
number of bytes sent.
Parameters:
address   of buffer to send.
len   of bytes to send.

void ost::UDPTransmit::endTransmitter void   [inline, protected]
 

Stop transmitter.

SOCKET ost::UDPTransmit::getTransmitter void   [inline, protected]
 

bool ost::UDPTransmit::isOutputReady unsigned long   timeout = 0l [inline]
 

See if output queue is empty for sending more packets.

Returns:
true if output available.
Parameters:
timeout   in milliseconds to wait.

sockerror_t ost::UDPTransmit::setBroadcast bool   enable [inline]
 

Reimplemented from ost::Socket.

sockerror_t ost::UDPTransmit::setMulticast bool   enable [inline, protected]
 

Reimplemented from ost::Socket.

sockerror_t ost::UDPTransmit::setRouting bool   enable [inline]
 

Reimplemented from ost::Socket.

sockerror_t ost::UDPTransmit::setTimeToLive unsigned char   ttl [inline, protected]
 

Reimplemented from ost::Socket.

sockerror_t ost::UDPTransmit::setTypeOfService socktos_t   tos [inline]
 

Reimplemented from ost::Socket.


The documentation for this class was generated from the following file:
Generated at Fri Jan 4 18:51:52 2002 for CommonC++ by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001