---
name: "ost_UDPTransmit"
section: "3"
platform: "linux"
package: "libcommoncpp2-doc"
version: "1.8.1-10"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/ost_UDPTransmit"
---

# ost\_UDPTransmit(3)

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

## NAME

ost::UDPTransmit - Representing half of a two-way UDP connection, the UDP transmitter can broadcast data to another selected peer host or to an entire subnet.

## SYNOPSIS

`#include <socket.h>`

Inherits **ost::UDPSocket**.

Inherited by **ost::UDPDuplex**.

### 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**)\

### Additional Inherited Members

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

## Constructor & Destructor Documentation

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

**Parameters**

*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]`

## Member Function Documentation

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

### 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 IPV6Address & host, tpport\_t port)` [protected]`

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

**Returns**

true if output available.

**Parameters**

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

**Returns**

number of bytes sent.

**Parameters**

*buf* address of buffer to send. \
 *len* of bytes to send.

References \_IOLEN64, and MSG\_NOSIGNAL.

### Error ost::UDPTransmit::setBroadcast (bool enable)` [inline]`

References ost::Socket::setBroadcast().

### Error ost::UDPTransmit::setMulticast (bool enable)` [inline]`, ` [protected]`

References ost::Socket::setMulticastByFamily().

### Error ost::UDPTransmit::setRouting (bool enable)` [inline]`

References ost::Socket::setRouting().

### Error ost::UDPTransmit::setTimeToLive (unsigned char ttl)` [inline]`, ` [protected]`

References ost::Socket::setTimeToLiveByFamily().

### Error ost::UDPTransmit::setTypeOfService (Tos tos)` [inline]`

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.

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

References \_IOLEN64, MSG\_DONTWAIT, and MSG\_NOSIGNAL.

## Author

Generated automatically by Doxygen for GNU CommonC++ from the source code.
