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

# ost\_UDPReceive(3)

Representing half of a two-way UDP connection, the UDP receiver can receive data from another peer host or subnet.

## NAME

ost::UDPReceive - Representing half of a two-way UDP connection, the UDP receiver can receive data from another peer host or subnet.

## SYNOPSIS

`#include <socket.h>`

Inherits **ost::UDPSocket**.

Inherited by **ost::UDPDuplex**.

### Public Member Functions

ssize\_t **receive** (void \*buf, size\_t len)\
 Receive a data packet from the connected peer host.  bool **isInputReady** (**timeout\_t** timeout=**TIMEOUT\_INF**)\
 See if input queue has data packets available.

### Protected Member Functions

**UDPReceive** (const **IPV4Address** &bind, **tpport\_t** port)\
 Create a UDP receiver, 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.  **UDPReceive** (const **IPV6Address** &bind, **tpport\_t** port)\
 **Error** **connect** (const **IPV4Host** &host, **tpport\_t** port)\
 Associate this socket with a specified peer host.  **Error** **connect** (const **IPV6Host** &host, **tpport\_t** port)\
 bool **isPendingReceive** (**timeout\_t** timeout)\
 Check for pending data.  void **endReceiver** (void)\
 End receiver.  **SOCKET** **getReceiver** (void) const\
 **Error** **setRouting** (bool enable)\
 **Error** **setMulticast** (bool enable)\
 **Error** **join** (const **IPV4Multicast** &ia)\
 **Error** **join** (const **IPV6Multicast** &ia)\
 **Error** **drop** (const **IPV4Multicast** &ia)\
 **Error** **drop** (const **IPV6Multicast** &ia)\

### Additional Inherited Members

## Detailed Description

Representing half of a two-way UDP connection, the UDP receiver can receive data from another peer host or subnet.

This class is used exclusivily to derive the **UDPDuplex**.

**Author**

David Sugar dyfet@ostel.com

Unreliable Datagram Peer Associations.

## Constructor & Destructor Documentation

### ost::UDPReceive::UDPReceive (const IPV4Address & bind, tpport\_t port)` [protected]`

Create a UDP receiver, 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.

**Parameters**

*bind* address to bind this socket to. \
 *port* number to bind this socket to.

### ost::UDPReceive::UDPReceive (const IPV6Address & bind, tpport\_t port)` [protected]`

## Member Function Documentation

### Error ost::UDPReceive::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 received from the specified host.

**Returns**

0 on success, -1 on error.

**Parameters**

*host* host network address to connect socket to. \
 *port* host transport port to connect socket to.

### Error ost::UDPReceive::connect (const IPV6Host & host, tpport\_t port)` [protected]`

### Error ost::UDPReceive::drop (const IPV4Multicast & ia)` [inline]`, ` [protected]`

References ost::Socket::drop().

### Error ost::UDPReceive::drop (const IPV6Multicast & ia)` [inline]`, ` [protected]`

References ost::Socket::drop().

### void ost::UDPReceive::endReceiver (void)` [inline]`, ` [protected]`

End receiver.

References ost::Socket::endSocket().

### SOCKET ost::UDPReceive::getReceiver (void) const` [inline]`, ` [protected]`

### bool ost::UDPReceive::isInputReady (timeout\_t timeout = TIMEOUT\_INF)` [inline]`

See if input queue has data packets available.

**Returns**

true if data packets available.

**Parameters**

*timeout* in milliseconds.

References ost::Socket::isPending(), and ost::Socket::pendingInput.

### bool ost::UDPReceive::isPendingReceive (timeout\_t timeout)` [inline]`, ` [protected]`

Check for pending data.

**Returns**

true if data is waiting.

**Parameters**

*timeout* in milliseconds.

References ost::Socket::isPending(), and ost::Socket::pendingInput.

### Error ost::UDPReceive::join (const IPV4Multicast & ia)` [inline]`, ` [protected]`

References ost::Socket::join().

### Error ost::UDPReceive::join (const IPV6Multicast & ia)` [inline]`, ` [protected]`

References ost::Socket::join().

### ssize\_t ost::UDPReceive::receive (void \* buf, size\_t len)` [inline]`

Receive a data packet from the connected peer host.

**Returns**

num of bytes actually received.

**Parameters**

*buf* address of data receive buffer. \
 *len* size of data receive buffer.

References \_IOLEN64.

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

References ost::Socket::setMulticastByFamily().

### Error ost::UDPReceive::setRouting (bool enable)` [inline]`, ` [protected]`

References ost::Socket::setRouting().

## Author

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