|
ESPHome 2026.3.0-dev
|
Data Structures | |
| class | BSDSocketImpl |
| class | LWIPRawCommon |
| Non-virtual common base for LWIP raw TCP sockets. More... | |
| class | LWIPRawImpl |
| Connected socket implementation for LWIP raw TCP. More... | |
| class | LWIPRawListenImpl |
| Listening socket implementation for LWIP raw TCP. More... | |
| class | LwIPSocketImpl |
Typedefs | |
| using | Socket = BSDSocketImpl |
| using | ListenSocket = BSDSocketImpl |
Functions | |
| std::unique_ptr< Socket > | socket (int domain, int type, int protocol) |
| Create a socket of the given domain, type and protocol. | |
| std::unique_ptr< Socket > | socket_loop_monitored (int domain, int type, int protocol) |
| Create a socket and monitor it for data in the main loop. | |
| std::unique_ptr< ListenSocket > | socket_listen (int domain, int type, int protocol) |
| Create a listening socket of the given domain, type and protocol. | |
| std::unique_ptr< ListenSocket > | socket_listen_loop_monitored (int domain, int type, int protocol) |
| Create a listening socket and monitor it for data in the main loop. | |
| void | socket_delay (uint32_t ms) |
| Delay that can be woken early by socket activity. | |
| void IRAM_ATTR | socket_wake () |
| Signal socket/IO activity and wake the main loop from esp_delay() early. | |
| bool | socket_ready_fd (int fd, bool loop_monitored) |
| Shared ready() helper for fd-based socket implementations. | |
| size_t | format_sockaddr_to (const struct sockaddr *addr_ptr, socklen_t len, std::span< char, SOCKADDR_STR_LEN > buf) |
| Format sockaddr into caller-provided buffer, returns length written (excluding null) | |
| std::unique_ptr< Socket > | socket_ip (int type, int protocol) |
| Create a socket in the newest available IP domain (IPv6 or IPv4) of the given type and protocol. | |
| std::unique_ptr< ListenSocket > | socket_ip_loop_monitored (int type, int protocol) |
| Create a listening socket in the newest available IP domain and monitor it. | |
| socklen_t | set_sockaddr (struct sockaddr *addr, socklen_t addrlen, const char *ip_address, uint16_t port) |
| Set a sockaddr to the specified address and port for the IP version used by socket_ip(). | |
| socklen_t | set_sockaddr_any (struct sockaddr *addr, socklen_t addrlen, uint16_t port) |
| Set a sockaddr to the any address and specified port for the IP version used by socket_ip(). | |
| socklen_t | set_sockaddr (struct sockaddr *addr, socklen_t addrlen, const std::string &ip_address, uint16_t port) |
| Convenience overload for std::string (backward compatible). | |
| typedef LWIPRawImpl esphome::socket::Socket = BSDSocketImpl |
| size_t esphome::socket::format_sockaddr_to | ( | const struct sockaddr * | addr_ptr, |
| socklen_t | len, | ||
| std::span< char, SOCKADDR_STR_LEN > | buf ) |
Format sockaddr into caller-provided buffer, returns length written (excluding null)
Definition at line 53 of file socket.cpp.
| socklen_t esphome::socket::set_sockaddr | ( | struct sockaddr * | addr, |
| socklen_t | addrlen, | ||
| const char * | ip_address, | ||
| uint16_t | port ) |
Set a sockaddr to the specified address and port for the IP version used by socket_ip().
| addr | Destination sockaddr structure |
| addrlen | Size of the addr buffer |
| ip_address | Null-terminated IP address string (IPv4 or IPv6) |
| port | Port number in host byte order |
Definition at line 100 of file socket.cpp.
| socklen_t esphome::socket::set_sockaddr_any | ( | struct sockaddr * | addr, |
| socklen_t | addrlen, | ||
| uint16_t | port ) |
Set a sockaddr to the any address and specified port for the IP version used by socket_ip().
Definition at line 139 of file socket.cpp.
| std::unique_ptr< Socket > esphome::socket::socket | ( | int | domain, |
| int | type, | ||
| int | protocol ) |
Create a socket of the given domain, type and protocol.
Definition at line 81 of file bsd_sockets_impl.cpp.
| void esphome::socket::socket_delay | ( | uint32_t | ms | ) |
Delay that can be woken early by socket activity.
On ESP8266, lwip callbacks set a flag and call esp_schedule() to wake the delay.
Definition at line 23 of file lwip_raw_tcp_impl.cpp.
| std::unique_ptr< Socket > esphome::socket::socket_ip | ( | int | type, |
| int | protocol ) |
Create a socket in the newest available IP domain (IPv6 or IPv4) of the given type and protocol.
Definition at line 84 of file socket.cpp.
| std::unique_ptr< ListenSocket > esphome::socket::socket_ip_loop_monitored | ( | int | type, |
| int | protocol ) |
Create a listening socket in the newest available IP domain and monitor it.
Definition at line 92 of file socket.cpp.
| std::unique_ptr< ListenSocket > esphome::socket::socket_listen | ( | int | domain, |
| int | type, | ||
| int | protocol ) |
Create a listening socket of the given domain, type and protocol.
Definition at line 89 of file bsd_sockets_impl.cpp.
| std::unique_ptr< ListenSocket > esphome::socket::socket_listen_loop_monitored | ( | int | domain, |
| int | type, | ||
| int | protocol ) |
Create a listening socket and monitor it for data in the main loop.
Definition at line 93 of file bsd_sockets_impl.cpp.
| std::unique_ptr< Socket > esphome::socket::socket_loop_monitored | ( | int | domain, |
| int | type, | ||
| int | protocol ) |
Create a socket and monitor it for data in the main loop.
Like socket() but also registers the socket with the Application's select() loop. WARNING: These functions are NOT thread-safe. They must only be called from the main loop as they register the socket file descriptor with the global Application instance. NOTE: On ESP platforms, FD_SETSIZE is typically 10, limiting the number of monitored sockets. File descriptors >= FD_SETSIZE will not be monitored and will log an error.
Definition at line 85 of file bsd_sockets_impl.cpp.
| bool esphome::socket::socket_ready_fd | ( | int | fd, |
| bool | loop_monitored ) |
Shared ready() helper for fd-based socket implementations.
Checks if the Application's select() loop has marked this fd as ready.
Definition at line 14 of file socket.cpp.
| void esphome::socket::socket_wake | ( | ) |
Signal socket/IO activity and wake the main loop from esp_delay() early.
ISR-safe: uses IRAM_ATTR internally and only sets a volatile flag + esp_schedule().
Definition at line 39 of file lwip_raw_tcp_impl.cpp.