UCommon
Public Member Functions | Protected Member Functions
ost::UDPReceive Class Reference

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

#include <udp.h>

Inheritance diagram for ost::UDPReceive:
Inheritance graph
[legend]
Collaboration diagram for ost::UDPReceive:
Collaboration graph
[legend]

Public Member Functions

bool isInputReady (timeout_t timeout=ucommon::Timer::inf)
 See if input queue has data packets available. More...
 
ssize_t receive (void *buf, size_t len)
 Receive a data packet from the connected peer host. More...
 

Protected Member Functions

Error connect (const ucommon::Socket::address &host)
 Associate this socket with a specified peer host. More...
 
Error connect (const IPV4Host &host, tpport_t port)
 
Error connect (const IPV6Host &host, tpport_t port)
 
Error drop (const IPV4Multicast &ia)
 
Error drop (const IPV6Multicast &ia)
 
void endReceiver (void)
 End receiver.
 
SOCKET getReceiver (void) const
 
bool isPendingReceive (timeout_t timeout)
 Check for pending data. More...
 
Error join (const ucommon::Socket::address &ia)
 
Error join (const IPV4Multicast &ia)
 
Error join (const IPV6Multicast &ia)
 
Error setMulticast (bool enable)
 
Error setRouting (bool enable)
 
 UDPReceive (const ucommon::Socket::address &bind)
 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. More...
 
 UDPReceive (const IPV4Address &bind, tpport_t port)
 
 UDPReceive (const IPV6Address &bind, tpport_t port)
 
- Protected Member Functions inherited from ost::UDPSocket
void connect (const ucommon::Socket::address &host)
 
void connect (const IPV4Host &host, tpport_t port)
 
void connect (const IPV6Host &host, tpport_t port)
 
void connect (const char *service)
 
Error disconnect (void)
 Disassociate this socket from any host connection. More...
 
Socket::Error getInterfaceIndex (const char *ethX, int &InterfaceIndex)
 get the interface index for a named network device More...
 
IPV4Host getIPV4Peer (tpport_t *port=NULL)
 
IPV6Host getIPV6Peer (tpport_t *port=NULL)
 
ucommon::Socket::address getPeer ()
 Examine address of sender of next waiting packet. More...
 
IPV4Host getPeer (tpport_t *port)
 
Socket::Error join (const ucommon::Socket::address &ia, int InterfaceIndex=0)
 join a multicast group on a particular interface More...
 
Socket::Error join (const IPV4Multicast &ia, int InterfaceIndex)
 
ssize_t peek (void *buf, size_t len)
 Examine contents of next waiting packet. More...
 
ssize_t receive (void *buf, size_t len, bool reply=false)
 Receive a message from any host. More...
 
ssize_t send (const void *buf, size_t len)
 Send a message packet to a peer host. More...
 
Error setLoopback (bool enable)
 Set the loopback.
 
Error setMulticast (bool enable)
 Set the multicast.
 
void setPeer (const ucommon::Socket::address &host)
 set the peer address to send message packets to. More...
 
void setPeer (const IPV4Host &host, tpport_t port)
 
void setPeer (const IPV6Host &host, tpport_t port)
 
void setPeer (const char *service)
 Associate socket with a named connection.
 
Error setTimeToLive (char ttl)
 Set time to live.
 
 UDPSocket (Family family=IPV4)
 Create an unbound UDP socket, mostly for internal use.
 
 UDPSocket (const char *name, Family family=IPV4)
 Create a UDP socket bound by a service name.
 
 UDPSocket (const ucommon::Socket::address &bind)
 Create a UDP socket and 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. More...
 
 UDPSocket (const IPV4Address &bind, tpport_t port)
 
 UDPSocket (const IPV6Address &bind, tpport_t port)
 
virtual ~UDPSocket ()
 Destroy a UDP socket as a socket.
 

Additional Inherited Members

- Protected Attributes inherited from ost::UDPSocket
Family family
 
Socket::address peer
 

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.nosp@m.@ost.nosp@m.el.co.nosp@m.m Unreliable Datagram Peer Associations.

Definition at line 452 of file udp.h.

Constructor & Destructor Documentation

◆ UDPReceive()

ost::UDPReceive::UDPReceive ( const ucommon::Socket::address bind)
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
bindaddress to bind this socket to.

Member Function Documentation

◆ connect()

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

Returns
0 on success, -1 on error.
Parameters
hosthost network address to connect socket to.
porthost transport port to connect socket to.

◆ isInputReady()

bool ost::UDPReceive::isInputReady ( timeout_t  timeout = ucommon::Timer::inf)
inline

See if input queue has data packets available.

Returns
true if data packets available.
Parameters
timeoutin milliseconds.

Definition at line 549 of file udp.h.

◆ isPendingReceive()

bool ost::UDPReceive::isPendingReceive ( timeout_t  timeout)
inlineprotected

Check for pending data.

Returns
true if data is waiting.
Parameters
timeoutin milliseconds.

Definition at line 494 of file udp.h.

◆ receive()

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
bufaddress of data receive buffer.
lensize of data receive buffer.

Definition at line 540 of file udp.h.


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