Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
net_sockets.h File Reference
Network communication functions. More...
Go to the source code of this file.
Data Structures | |
struct | mbedtls_net_context |
Wrapper type for sockets. More... | |
Functions | |
void | mbedtls_net_init (mbedtls_net_context *ctx) |
Initialize a context Just makes the context ready to be used or freed safely. | |
int | mbedtls_net_connect (mbedtls_net_context *ctx, const char *host, const char *port, int proto) |
Initiate a connection with host:port in the given protocol. | |
int | mbedtls_net_bind (mbedtls_net_context *ctx, const char *bind_ip, const char *port, int proto) |
Create a receiving socket on bind_ip:port in the chosen protocol. | |
int | mbedtls_net_accept (mbedtls_net_context *bind_ctx, mbedtls_net_context *client_ctx, void *client_ip, size_t buf_size, size_t *ip_len) |
Accept a connection from a remote client. | |
int | mbedtls_net_set_block (mbedtls_net_context *ctx) |
Set the socket blocking. | |
int | mbedtls_net_set_nonblock (mbedtls_net_context *ctx) |
Set the socket non-blocking. | |
void | mbedtls_net_usleep (unsigned long usec) |
Portable usleep helper. | |
int | mbedtls_net_recv (void *ctx, unsigned char *buf, size_t len) |
Read at most 'len' characters. | |
int | mbedtls_net_send (void *ctx, const unsigned char *buf, size_t len) |
Write at most 'len' characters. | |
int | mbedtls_net_recv_timeout (void *ctx, unsigned char *buf, size_t len, uint32_t timeout) |
Read at most 'len' characters, blocking for at most 'timeout' seconds. | |
void | mbedtls_net_free (mbedtls_net_context *ctx) |
Gracefully shutdown the connection and free associated data. |
Detailed Description
Network communication functions.
Definition in file net_sockets.h.
Function Documentation
int mbedtls_net_accept | ( | mbedtls_net_context * | bind_ctx, |
mbedtls_net_context * | client_ctx, | ||
void * | client_ip, | ||
size_t | buf_size, | ||
size_t * | ip_len | ||
) |
Accept a connection from a remote client.
- Parameters:
-
bind_ctx Relevant socket client_ctx Will contain the connected client socket client_ip Will contain the client IP address buf_size Size of the client_ip buffer ip_len Will receive the size of the client IP written
- Returns:
- 0 if successful, or MBEDTLS_ERR_NET_ACCEPT_FAILED, or MBEDTLS_ERR_NET_BUFFER_TOO_SMALL if buf_size is too small, MBEDTLS_ERR_SSL_WANT_READ if bind_fd was set to non-blocking and accept() would block.
Definition at line 301 of file net_sockets.c.
int mbedtls_net_bind | ( | mbedtls_net_context * | ctx, |
const char * | bind_ip, | ||
const char * | port, | ||
int | proto | ||
) |
Create a receiving socket on bind_ip:port in the chosen protocol.
If bind_ip == NULL, all interfaces are bound.
- Parameters:
-
ctx Socket to use bind_ip IP to bind to, can be NULL port Port number to use proto Protocol: MBEDTLS_NET_PROTO_TCP or MBEDTLS_NET_PROTO_UDP
- Returns:
- 0 if successful, or one of: MBEDTLS_ERR_NET_SOCKET_FAILED, MBEDTLS_ERR_NET_BIND_FAILED, MBEDTLS_ERR_NET_LISTEN_FAILED
- Note:
- Regardless of the protocol, opens the sockets and binds it. In addition, make the socket listening if protocol is TCP.
Definition at line 184 of file net_sockets.c.
int mbedtls_net_connect | ( | mbedtls_net_context * | ctx, |
const char * | host, | ||
const char * | port, | ||
int | proto | ||
) |
Initiate a connection with host:port in the given protocol.
- Parameters:
-
ctx Socket to use host Host to connect to port Port to connect to proto Protocol: MBEDTLS_NET_PROTO_TCP or MBEDTLS_NET_PROTO_UDP
- Returns:
- 0 if successful, or one of: MBEDTLS_ERR_NET_SOCKET_FAILED, MBEDTLS_ERR_NET_UNKNOWN_HOST, MBEDTLS_ERR_NET_CONNECT_FAILED
- Note:
- Sets the socket in connected mode even with UDP.
Definition at line 136 of file net_sockets.c.
void mbedtls_net_free | ( | mbedtls_net_context * | ctx ) |
Gracefully shutdown the connection and free associated data.
- Parameters:
-
ctx The context to free
Definition at line 580 of file net_sockets.c.
void mbedtls_net_init | ( | mbedtls_net_context * | ctx ) |
Initialize a context Just makes the context ready to be used or freed safely.
- Parameters:
-
ctx Context to initialize
Definition at line 128 of file net_sockets.c.
int mbedtls_net_recv | ( | void * | ctx, |
unsigned char * | buf, | ||
size_t | len | ||
) |
Read at most 'len' characters.
If no error occurs, the actual amount read is returned.
- Parameters:
-
ctx Socket buf The buffer to write to len Maximum length of the buffer
- Returns:
- the number of bytes received, or a non-zero error code; with a non-blocking socket, MBEDTLS_ERR_SSL_WANT_READ indicates read() would block.
Definition at line 464 of file net_sockets.c.
int mbedtls_net_recv_timeout | ( | void * | ctx, |
unsigned char * | buf, | ||
size_t | len, | ||
uint32_t | timeout | ||
) |
Read at most 'len' characters, blocking for at most 'timeout' seconds.
If no error occurs, the actual amount read is returned.
- Parameters:
-
ctx Socket buf The buffer to write to len Maximum length of the buffer timeout Maximum number of milliseconds to wait for data 0 means no timeout (wait forever)
- Returns:
- the number of bytes received, or a non-zero error code: MBEDTLS_ERR_SSL_TIMEOUT if the operation timed out, MBEDTLS_ERR_SSL_WANT_READ if interrupted by a signal.
- Note:
- This function will block (until data becomes available or timeout is reached) even if the socket is set to non-blocking. Handling timeouts with non-blocking reads requires a different strategy.
Definition at line 500 of file net_sockets.c.
int mbedtls_net_send | ( | void * | ctx, |
const unsigned char * | buf, | ||
size_t | len | ||
) |
Write at most 'len' characters.
If no error occurs, the actual amount read is returned.
- Parameters:
-
ctx Socket buf The buffer to read from len The length of the buffer
- Returns:
- the number of bytes sent, or a non-zero error code; with a non-blocking socket, MBEDTLS_ERR_SSL_WANT_WRITE indicates write() would block.
Definition at line 544 of file net_sockets.c.
int mbedtls_net_set_block | ( | mbedtls_net_context * | ctx ) |
Set the socket blocking.
- Parameters:
-
ctx Socket to set
- Returns:
- 0 if successful, or a non-zero error code
Definition at line 419 of file net_sockets.c.
int mbedtls_net_set_nonblock | ( | mbedtls_net_context * | ctx ) |
Set the socket non-blocking.
- Parameters:
-
ctx Socket to set
- Returns:
- 0 if successful, or a non-zero error code
Definition at line 430 of file net_sockets.c.
void mbedtls_net_usleep | ( | unsigned long | usec ) |
Portable usleep helper.
- Parameters:
-
usec Amount of microseconds to sleep
- Note:
- Real amount of time slept will not be less than select()'s timeout granularity (typically, 10ms).
Definition at line 444 of file net_sockets.c.
Generated on Tue Jul 12 2022 18:18:58 by
