# mongoc_socket_send()

## Synopsis

    ssize_t
    mongoc_socket_send (mongoc_socket_t *sock,
                        const void *buf,
                        size_t buflen,
                        int64_t expire_at);

## Parameters

- `sock`: A mongoc_socket_t.

- `buf`: A buffer to send.

- `buflen`: A size_t with the number of bytes in buf.

- `expire_at`: A int64_t with an absolute timeout for the operation or 0. The timeout is in monotonic time using microseconds. You can retrieve the current monotonic time with `System Clock`.

## Description

Sends buflen bytes in buf to the destination. If a timeout expired, the number of bytes sent will be returned or -1 if no bytes were sent.

## Returns

-1 on failure and errno is set, or the number of bytes sent.