|
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] |
| 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.
| 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 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. |
| 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] |
| 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().
| Error ost::UDPTransmit::setTypeOfService | ( | Tos | tos | ) | [inline] |
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.
1.7.6.1