GNU CommonC++
|
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 <socket.h>
Public Member Functions | |
ssize_t | transmit (const char *buffer, size_t len) |
Transmit "send" to use "connected" send rather than sendto. | |
bool | isOutputReady (unsigned long timeout=0l) |
See if output queue is empty for sending more packets. | |
Error | setRouting (bool enable) |
Error | setTypeOfService (Tos tos) |
Error | setBroadcast (bool enable) |
Protected Member Functions | |
UDPTransmit (Family family=IPV4) | |
Create a UDP transmitter. | |
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 (const IPV6Address &bind, tpport_t port=5005) | |
Error | connect (const IPV4Host &host, tpport_t port) |
Associate this socket with a specified peer host. | |
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) |
ssize_t | send (const void *buf, size_t len) |
Transmit "send" to use "connected" send rather than sendto. | |
void | endTransmitter (void) |
Stop transmitter. | |
SOCKET | getTransmitter (void) |
Error | setMulticast (bool enable) |
Error | setTimeToLive (unsigned char ttl) |
Representing half of a two-way UDP connection, the UDP transmitter can broadcast data to another selected peer host or to an entire subnet.
ost::UDPTransmit::UDPTransmit | ( | Family | family = IPV4 | ) | [protected] |
Create a UDP transmitter.
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.
bind | address to bind this socket to. |
port | number to bind this socket to. |
ost::UDPTransmit::UDPTransmit | ( | const IPV6Address & | bind, |
tpport_t | port = 5005 |
||
) | [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.
host | address to connect socket to. |
port | to connect socket to. |
Reimplemented from ost::UDPSocket.
Reimplemented in ost::UDPDuplex.
Error ost::UDPTransmit::connect | ( | const IPV6Address & | host, |
tpport_t | port | ||
) | [protected] |
Error ost::UDPTransmit::connect | ( | const IPV4Multicast & | mgroup, |
tpport_t | port | ||
) | [protected] |
Associate this socket with a multicast group.
mgroup | address of the multicast group to send to. |
port | port number |
Error ost::UDPTransmit::connect | ( | const IPV6Multicast & | mgroup, |
tpport_t | port | ||
) | [protected] |
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.
subnet | subnet address to broadcast into. |
port | transport port to broadcast into. |
void ost::UDPTransmit::endTransmitter | ( | void | ) | [inline, protected] |
Stop transmitter.
References ost::Socket::endSocket().
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.
timeout | in milliseconds to wait. |
References ost::Socket::isPending(), and ost::Socket::pendingOutput.
ssize_t ost::UDPTransmit::send | ( | const void * | buf, |
size_t | len | ||
) | [inline, protected] |
Transmit "send" to use "connected" send rather than sendto.
buf | address of buffer to send. |
len | of bytes to send. |
Reimplemented from ost::UDPSocket.
References _IOLEN64, and MSG_NOSIGNAL.
Error ost::UDPTransmit::setBroadcast | ( | bool | enable | ) | [inline] |
Reimplemented from ost::Socket.
References ost::Socket::setBroadcast().
Error ost::UDPTransmit::setMulticast | ( | bool | enable | ) | [inline, protected] |
Reimplemented from ost::UDPSocket.
References ost::Socket::setMulticastByFamily().
Error ost::UDPTransmit::setRouting | ( | bool | enable | ) | [inline] |
Reimplemented from ost::Socket.
References ost::Socket::setRouting().
Error ost::UDPTransmit::setTimeToLive | ( | unsigned char | ttl | ) | [inline, protected] |
References ost::Socket::setTimeToLiveByFamily().
Reimplemented from ost::Socket.
References ost::Socket::setTypeOfService().
ssize_t ost::UDPTransmit::transmit | ( | const char * | buffer, |
size_t | len | ||
) | [inline] |
Transmit "send" to use "connected" send rather than sendto.
buffer | address of buffer to send. |
len | of bytes to send. |
References _IOLEN64, MSG_DONTWAIT, and MSG_NOSIGNAL.