UCommon
Public Member Functions | Protected Member Functions
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 ucommon::Socket::address &host)
 Associate this socket with a specified peer host.
Error connect (const IPV4Host &host, tpport_t port)
Error connect (const IPV6Address &host, tpport_t port)
Error connect (const IPV4Broadcast &subnet, tpport_t port)
 Associate this socket with a subnet of peer hosts for subnet broadcasting.
Error connect (const IPV4Multicast &mgroup, tpport_t port)
 Associate this socket with a multicast group.
Error connect (const IPV6Multicast &mgroup, tpport_t port)
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 (Family family=IPV4)
 Create a UDP transmitter.
 UDPTransmit (const ucommon::Socket::address &bind)
 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 (const IPV4Address &bind, tpport_t port=5005)
 UDPTransmit (const IPV6Address &bind, tpport_t port=5005)

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 298 of file udp.h.


Constructor & Destructor Documentation

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:
bindaddress to bind this socket to.
portnumber to bind this socket to. If 0 or not specified, the bind socket address port is used.

Member Function Documentation

Error ost::UDPTransmit::connect ( const ucommon::Socket::address host) [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:
hostaddress to connect socket to.
portto connect socket to.

Reimplemented from ost::UDPSocket.

Reimplemented in ost::UDPDuplex.

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:
subnetsubnet address to broadcast into.
porttransport port to broadcast into.
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:
mgroupaddress of the multicast group to send to.
portport number
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:
timeoutin milliseconds to wait.

Definition at line 423 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:
bufaddress of buffer to send.
lenof bytes to send.

Reimplemented from ost::UDPSocket.

Definition at line 381 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:
bufferaddress of buffer to send.
lenof bytes to send.

Definition at line 414 of file udp.h.


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