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

# zmq\_msg\_routing\_id(3)

return routing ID for message, if any

## NAME

zmq\_msg\_routing\_id - return routing ID for message, if any

## SYNOPSIS

**uint32\_t zmq\_msg\_routing\_id (zmq\_msg\_t** *\*message***);**

## DESCRIPTION

The *zmq\_msg\_routing\_id()* function returns the routing ID for the message, if any. The routing ID is set on all messages received from a *ZMQ\_SERVER* socket. To send a message to a *ZMQ\_SERVER* socket you must set the routing ID of a connected *ZMQ\_CLIENT* peer. Routing IDs are transient.

## RETURN VALUE

The *zmq\_msg\_routing\_id()* function shall return zero if there is no routing ID, otherwise it shall return an unsigned 32-bit integer greater than zero.

## EXAMPLE

**Receiving a client message and routing ID**.

```
void *ctx = zmq_ctx_new ();
assert (ctx);
void *server = zmq_socket (ctx, ZMQ_SERVER);
assert (server);
int rc = zmq_bind (server, "tcp://127.0.0.1:8080");
assert (rc == 0);
zmq_msg_t message;
rc = zmq_msg_init (&message);
assert (rc == 0);
//  Receive a message from socket
rc = zmq_msg_recv (server, &message, 0);
assert (rc != -1);
uint32_t routing_id = zmq_msg_routing_id (&message);
assert (routing_id);
```

## SEE ALSO

[**zmq\_msg\_set\_routing\_id**(3)](/zmq_msg_set_routing_id/3.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**.
