ZMQ\_UDP(7) 0MQ Manual ZMQ\_UDP(7)

# [NAME](#NAME)

zmq\_udp - 0MQ UDP multicast and unicast transport

# [SYNOPSIS](#SYNOPSIS)

UDP is unreliable protocol transport of data over IP networks. UDP support both unicast and multicast communication.

# [DESCRIPTION](#DESCRIPTION)

UDP transport can only be used with the *ZMQ\_RADIO* and *ZMQ\_DISH* socket types.

# [ADDRESSING](#ADDRESSING)

A 0MQ endpoint is a string consisting of a *transport*:// followed by an *address*. The *transport* specifies the underlying protocol to use. The *address* specifies the transport-specific address to connect to.

For the UDP transport, the transport is udp. The meaning of the *address* part is defined below.

# [BINDING A SOCKET](#BINDING_A_SOCKET)

With *udp* we can only bind the *ZMQ\_DISH* socket type. When binding a socket using *zmq\_bind()* with the *udp* transport the *endpoint* shall be interpreted as an *interface* followed by a colon and the UDP port number to use.

An *interface* may be specified by either of the following:

• The wild-card \*, meaning all available interfaces.

• The name of the network interface (i.e. eth0, lo, wlan0 etc...)

• The primary address assigned to the interface, in its numeric representation.

• Multicast address in its numeric representation the socket should join.

The UDP port number may be specified a numeric value, usually above 1024 on POSIX systems.

# [CONNECTING A SOCKET](#CONNECTING_A_SOCKET)

With *udp* we can only connect the *ZMQ\_RADIO* socket type. When connecting a socket to a peer address using *zmq\_connect()* with the *udp* transport, the *endpoint* shall be interpreted as a *peer address* followed by a colon and the UDP port number to use.

A *peer address* may be specified by either of the following:

• The IPv4 or IPv6 address of the peer, in its numeric representation or using its hostname.

• Multicast address in its numeric representation.

# [EXAMPLES](#EXAMPLES)

**Binding a socket**.

```
//  Unicast - UDP port 5555 on all available interfaces
rc = zmq_bind(dish, "udp://*:5555");
assert (rc == 0);
//  Unicast - UDP port 5555 on the local loop-back interface
rc = zmq_bind(dish, "udp://127.0.0.1:5555");
assert (rc == 0);
//  Unicast - UDP port 5555 on interface eth1
rc = zmq_bind(dish, "udp://eth1:5555");
assert (rc == 0);
//  Multicast - UDP port 5555 on a Multicast address
rc = zmq_bind(dish, "udp://239.0.0.1:5555");
assert (rc == 0);
//  Same as above but joining only on interface eth0
rc = zmq_bind(dish, "udp://eth0;239.0.0.1:5555");
assert (rc == 0);
//  Same as above using IPv6 multicast
rc = zmq_bind(dish, "udp://eth0;[ff02::1]:5555");
assert (rc == 0);
```

**Connecting a socket**.

```
//  Connecting using an Unicast IP address
rc = zmq_connect(radio, "udp://192.168.1.1:5555");
assert (rc == 0);
//  Connecting using a Multicast address
rc = zmq_connect(socket, "udp://239.0.0.1:5555);
assert (rc == 0);
//  Connecting using a Multicast address using local interface wlan0
rc = zmq_connect(socket, "udp://wlan0;239.0.0.1:5555);
assert (rc == 0);
//  Connecting to IPv6 multicast
rc = zmq_connect(socket, "udp://[ff02::1]:5555);
assert (rc == 0);
```

# [SEE ALSO](#SEE_ALSO)

[**zmq\_connect**(3)](/man/os/zeromq/zmq_connect.3) [**zmq\_setsockopt**(3)](/man/os/zeromq/zmq_setsockopt.3) [**zmq\_tcp**(7)](/man/os/zeromq/zmq_tcp.7) [**zmq\_ipc**(7)](/man/os/zeromq/zmq_ipc.7) [**zmq\_inproc**(7)](/man/os/zeromq/zmq_inproc.7) [**zmq\_vmci**(7)](/man/os/zeromq/zmq_vmci.7) [**zmq**(7)](/man/os/zeromq/zmq.7)

# [AUTHORS](#AUTHORS)

This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at **http://www.zeromq.org/docs:contributing**.

08/29/2026 0MQ 4.3.5

---

Document: zmq_udp(7) from zeromq 4.3.5-r13 (Chainguard OS)
Source: https://github.com/zeromq/libzmq
