# UDPNotify
<span class="source-link">[[Source]](src/net/udp_notify.md#L-0-1)</span>

Notifications for UDP connections.

For an example of using this class please see the documentatoin for the
`UDPSocket` actor.


```pony
interface ref UDPNotify
```

## Public Functions

### listening
<span class="source-link">[[Source]](src/net/udp_notify.md#L-0-8)</span>


Called when the socket has been bound to an address.


```pony
fun ref listening(
  sock: UDPSocket ref)
: None val
```
#### Parameters

*   sock: [UDPSocket](net-UDPSocket.md) ref

#### Returns

* [None](builtin-None.md) val

---

### not_listening
<span class="source-link">[[Source]](src/net/udp_notify.md#L-0-14)</span>


Called if it wasn't possible to bind the socket to an address.

It is expected to implement proper error handling. You need to opt in to
ignoring errors, which can be implemented like this:

```pony
fun ref not_listening(sock: UDPSocket ref) =>
  None
```


```pony
fun ref not_listening(
  sock: UDPSocket ref)
: None val
```
#### Parameters

*   sock: [UDPSocket](net-UDPSocket.md) ref

#### Returns

* [None](builtin-None.md) val

---

### received
<span class="source-link">[[Source]](src/net/udp_notify.md#L-0-27)</span>


Called when a datagram is received on the socket.

`data` is truncated to the socket's read buffer size -- the `size` argument
to the `UDPSocket` listen constructors, default 1024. A datagram larger
than that buffer is delivered as its first `size` bytes; the remainder is
silently discarded. This is true on every platform, and there is currently
no way to tell from this callback that truncation happened or how many
bytes were lost. To receive whole datagrams, size the read buffer to your
protocol's largest expected datagram (the UDP maximum is 65507 bytes for
IPv4).


```pony
fun ref received(
  sock: UDPSocket ref,
  data: Array[U8 val] iso,
  from: NetAddress val)
: None val
```
#### Parameters

*   sock: [UDPSocket](net-UDPSocket.md) ref
*   data: [Array](builtin-Array.md)\[[U8](builtin-U8.md) val\] iso
*   from: [NetAddress](net-NetAddress.md) val

#### Returns

* [None](builtin-None.md) val

---

### closed
<span class="source-link">[[Source]](src/net/udp_notify.md#L-0-46)</span>


Called when the socket is closed.


```pony
fun ref closed(
  sock: UDPSocket ref)
: None val
```
#### Parameters

*   sock: [UDPSocket](net-UDPSocket.md) ref

#### Returns

* [None](builtin-None.md) val

---

