## nng_req_open

Create req socket.

### Synopsis

```c
#include <nng/nng.h>
#include <nng/protocol/reqrep0/req.h>

int nng_req0_open(nng_socket *s);
int nng_req0_open_raw(nng_socket *s);
```

### Description

The `nng_req0_open` function creates a xref:../proto/req.adoc[_REQ_] version 0 xref:../sock/index.adoc[socket] and returns it at the location pointed to by _s_.

The `nng_req0_open_raw` function creates a _REQ_ version 0 socket in xref:../sock/raw.adoc[raw mode] and returns it at the location pointed to by _s_.

### Return Values

These functions return 0 on success, and non-zero otherwise.

### Errors

[horizontal]
`NNG_ENOMEM`:: Insufficient memory is available.
`NNG_ENOTSUP`:: The protocol is not supported.

### See Also

xref:../proto/rep.adoc[Replier Protocol (_REP_)]
xref:../proto/req.adoc[Requester Protocol (_REQ_)]
