# nghttp2_session_client_new

## Synopsis

#include <nghttp2/nghttp2.h>

int nghttp2_session_client_new(nghttp2_session **session_ptr, const nghttp2_session_callbacks *callbacks, void *user_data)

  Initializes *session_ptr for client use. The all members of callbacks are copied to *session_ptr. Therefore *session_ptr does not store callbacks. The user_data is an arbitrary user supplied data, which will be passed to the callback functions.

  The `nghttp2_send_callback` must be specified. If the application code uses `nghttp2_session_recv()`, the `nghttp2_recv_callback` must be specified. The other members of callbacks can be `NULL`.

  If this function fails, *session_ptr is left untouched.

  This function returns 0 if it succeeds, or one of the following negative error codes:

  `nghttp2_error.NGHTTP2_ERR_NOMEM`

    Out of memory.