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. More...

#include <udp.h>

Inheritance diagram for ost::UDPTransmit:
Inheritance graph
[legend]
Collaboration diagram for ost::UDPTransmit:
Collaboration graph
[legend]

Public Member Functions

bool isOutputReady (unsigned long timeout=0l)
 See if output queue is empty for sending more packets.
Error setBroadcast (bool enable)
Error setRouting (bool enable)
Error setTypeOfService (Tos tos)
ssize_t transmit (const char *buffer, size_t len)
 Transmit "send" to use "connected" send rather than sendto.

Protected Member Functions

Error connect (const IPV6Multicast &mgroup, tpport_t port)
Error connect (const IPV4Multicast &mgroup, tpport_t port)
 Associate this socket with a multicast group.
Error connect (const IPV4Broadcast &subnet, tpport_t port)
 Associate this socket with a subnet of peer hosts for subnet broadcasting.
Error connect (const IPV6Address &host, tpport_t port)
Error connect (const IPV4Host &host, tpport_t port)
 Associate this socket with a specified peer host.
void endTransmitter (void)
 Stop transmitter.
SOCKET getTransmitter (void)
ssize_t send (const void *buf, size_t len)
 Transmit "send" to use "connected" send rather than sendto.
Error setMulticast (bool enable)
 Set the multicast.
Error setTimeToLive (unsigned char ttl)
 UDPTransmit (const IPV6Address &bind, tpport_t port=5005)
 UDPTransmit (const IPV4Address &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.
 UDPTransmit (Family family=IPV4)
 Create a UDP transmitter.

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.

Author:
David Sugar <dyfet@ostel.com> Unreliable Datagram Peer Associations.

Definition at line 299 of file udp.h.


Constructor & Destructor Documentation

ost::UDPTransmit::UDPTransmit ( const IPV4Address 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.

Member Function Documentation

Error ost::UDPTransmit::connect ( const IPV4Multicast mgroup,
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
Error ost::UDPTransmit::connect ( const IPV4Broadcast 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 subnet address to broadcast into.
port transport port to broadcast into.
Error ost::UDPTransmit::connect ( const IPV4Host 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.
port to connect socket to.

Reimplemented from ost::UDPSocket.

Reimplemented in ost::UDPDuplex.

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.

Definition at line 419 of file udp.h.

ssize_t ost::UDPTransmit::send ( const void *  buf,
size_t  len 
) [inline, protected]

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

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

Reimplemented from ost::UDPSocket.

Definition at line 377 of file udp.h.

ssize_t 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:
buffer address of buffer to send.
len of bytes to send.

Definition at line 410 of file udp.h.


The documentation for this class was generated from the following file:

Generated on 24 Sep 2014 for ucommon by  doxygen 1.6.1