---
name: "zmq_udp"
section: "7"
platform: "linux"
package: "zeromq"
version: "4.3.5-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/zmq_udp"
---

# zmq\_udp(7)

0MQ UDP multicast and unicast transport

## NAME

zmq\_udp - 0MQ UDP multicast and unicast transport

## SYNOPSIS

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

## DESCRIPTION

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

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

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

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

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

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

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