TuyaOS
tal_network.h
浏览该文件的文档.
1
10#ifndef __TAL_NETWORK_H__
11#define __TAL_NETWORK_H__
12
13#include "tuya_cloud_types.h"
14
15#ifdef __cplusplus
16 extern "C" {
17#endif
18
19/* tuya sdk definition of 127.0.0.1 */
20#define TY_IPADDR_LOOPBACK ((UINT32_T)0x7f000001UL)
21/* tuya sdk definition of 0.0.0.0 */
22#define TY_IPADDR_ANY ((UINT32_T)0x00000000UL)
23/* tuya sdk definition of 255.255.255.255 */
24#define TY_IPADDR_BROADCAST ((UINT32_T)0xffffffffUL)
25
35TUYA_ERRNO tal_net_get_errno(VOID);
36
47OPERATE_RET tal_net_fd_set(INT_T fd, TUYA_FD_SET_T* fds);
48
59OPERATE_RET tal_net_fd_clear(INT_T fd, TUYA_FD_SET_T* fds);
60
71OPERATE_RET tal_net_fd_isset(INT_T fd, TUYA_FD_SET_T* fds);
72
82OPERATE_RET tal_net_fd_zero(TUYA_FD_SET_T* fds);
83
84//Add file descriptor to set
85#define TAL_FD_SET(n,p) tal_net_fd_set(n, p)
86//Clear file descriptor from set
87#define TAL_FD_CLR(n, p) tal_net_fd_clear(n, p)
88//Check file descriptor is in set
89#define TAL_FD_ISSET(n,p) tal_net_fd_isset(n,p)
90//Clear all descriptor in set
91#define TAL_FD_ZERO(p) tal_net_fd_zero(p)
92
106INT_T tal_net_select(CONST INT_T maxfd, TUYA_FD_SET_T *readfds, TUYA_FD_SET_T *writefds,
107 TUYA_FD_SET_T *errorfds, CONST UINT_T ms_timeout);
108
118INT_T tal_net_get_nonblock(CONST INT_T fd);
119
130OPERATE_RET tal_net_set_block(CONST INT_T fd, CONST BOOL_T block);
131
141TUYA_ERRNO tal_net_close(CONST INT_T fd);
142
152INT_T tal_net_socket_create(CONST TUYA_PROTOCOL_TYPE_E type);
153
165TUYA_ERRNO tal_net_connect(CONST INT_T fd, CONST TUYA_IP_ADDR_T addr, CONST UINT16_T port);
166
178TUYA_ERRNO tal_net_connect_raw(CONST INT_T fd, VOID_T *p_socket, CONST INT_T len);
179
191TUYA_ERRNO tal_net_bind(CONST INT_T fd, CONST TUYA_IP_ADDR_T addr, CONST UINT16_T port);
192
203TUYA_ERRNO tal_net_listen(CONST INT_T fd, CONST INT_T backlog);
204
216TUYA_ERRNO tal_net_send(CONST INT_T fd, CONST VOID_T *buf, CONST UINT_T nbytes);
217
231TUYA_ERRNO tal_net_send_to(CONST INT_T fd, CONST VOID_T *buf, CONST UINT_T nbytes,
232 CONST TUYA_IP_ADDR_T addr, CONST UINT16_T port);
233
245INT_T tal_net_accept(CONST INT_T fd, TUYA_IP_ADDR_T *addr, UINT16_T *port);
246
258TUYA_ERRNO tal_net_recv(CONST INT_T fd, VOID_T *buf, CONST UINT_T nbytes);
259
272INT_T tal_net_recv_nd_size(CONST INT_T fd, VOID_T *buf, CONST UINT_T buf_size, CONST UINT_T nd_size);
273
287TUYA_ERRNO tal_net_recvfrom(CONST INT_T fd, VOID_T *buf, CONST UINT_T nbytes,
288 TUYA_IP_ADDR_T *addr, UINT16_T *port);
289
301OPERATE_RET tal_net_set_timeout(CONST INT_T fd, CONST INT_T ms_timeout, CONST TUYA_TRANS_TYPE_E type);
302
314OPERATE_RET tal_net_set_bufsize(CONST INT_T fd, CONST INT_T buf_size, CONST TUYA_TRANS_TYPE_E type);
315
325OPERATE_RET tal_net_set_reuse(CONST INT_T fd);
326
336OPERATE_RET tal_net_disable_nagle(CONST INT_T fd);
337
347OPERATE_RET tal_net_set_broadcast(CONST INT_T fd);
348
359OPERATE_RET tal_net_gethostbyname(CONST CHAR_T *domain, TUYA_IP_ADDR_T *addr);
360
374OPERATE_RET tal_net_set_keepalive(INT_T fd, CONST BOOL_T alive, CONST UINT_T idle, CONST UINT_T intr, CONST UINT_T cnt);
375
386OPERATE_RET tal_net_get_socket_ip(INT_T fd, TUYA_IP_ADDR_T *addr);
387
388
398TUYA_IP_ADDR_T tal_net_str2addr(CONST CHAR_T *ip_str);
399
409CHAR_T* tal_net_addr2str(TUYA_IP_ADDR_T ipaddr);
410
424OPERATE_RET tal_net_setsockopt(CONST INT_T fd, CONST TUYA_OPT_LEVEL level, CONST TUYA_OPT_NAME optname, CONST VOID_T *optval, CONST INT_T optlen);
425
439OPERATE_RET tal_net_getsockopt(CONST INT_T fd, CONST TUYA_OPT_LEVEL level, CONST TUYA_OPT_NAME optname, VOID_T *optval, INT_T *optlen);
440
441#ifdef __cplusplus
442}
443#endif
444
445#endif // __TAL_NETWORK_H__
446
OPERATE_RET tal_net_fd_zero(TUYA_FD_SET_T *fds)
Clear all file descriptor in set
TUYA_ERRNO tal_net_send(CONST INT_T fd, CONST VOID_T *buf, CONST UINT_T nbytes)
Send data to network
OPERATE_RET tal_net_set_block(CONST INT_T fd, CONST BOOL_T block)
Set block flag for file descriptors
INT_T tal_net_accept(CONST INT_T fd, TUYA_IP_ADDR_T *addr, UINT16_T *port)
Accept the coming socket connection of the server fd
OPERATE_RET tal_net_setsockopt(CONST INT_T fd, CONST TUYA_OPT_LEVEL level, CONST TUYA_OPT_NAME optname, CONST VOID_T *optval, CONST INT_T optlen)
Set socket options
TUYA_ERRNO tal_net_send_to(CONST INT_T fd, CONST VOID_T *buf, CONST UINT_T nbytes, CONST TUYA_IP_ADDR_T addr, CONST UINT16_T port)
Send data to specified server
TUYA_ERRNO tal_net_connect(CONST INT_T fd, CONST TUYA_IP_ADDR_T addr, CONST UINT16_T port)
Connect to network
TUYA_ERRNO tal_net_bind(CONST INT_T fd, CONST TUYA_IP_ADDR_T addr, CONST UINT16_T port)
Bind to network
TUYA_ERRNO tal_net_recvfrom(CONST INT_T fd, VOID_T *buf, CONST UINT_T nbytes, TUYA_IP_ADDR_T *addr, UINT16_T *port)
Receive data from specified server
OPERATE_RET tal_net_disable_nagle(CONST INT_T fd)
Disable nagle option of socket fd
OPERATE_RET tal_net_get_socket_ip(INT_T fd, TUYA_IP_ADDR_T *addr)
Get ip address by socket fd
TUYA_ERRNO tal_net_recv(CONST INT_T fd, VOID_T *buf, CONST UINT_T nbytes)
Receive data from network
OPERATE_RET tal_net_gethostbyname(CONST CHAR_T *domain, TUYA_IP_ADDR_T *addr)
Get address information by domain
INT_T tal_net_socket_create(CONST TUYA_PROTOCOL_TYPE_E type)
Create a tcp/udp socket
TUYA_IP_ADDR_T tal_net_str2addr(CONST CHAR_T *ip_str)
Change ip string to address
OPERATE_RET tal_net_fd_isset(INT_T fd, TUYA_FD_SET_T *fds)
Check file descriptor is in set
OPERATE_RET tal_net_set_broadcast(CONST INT_T fd)
Enable broadcast option of socket fd
CHAR_T * tal_net_addr2str(TUYA_IP_ADDR_T ipaddr)
Change ip address to string
OPERATE_RET tal_net_set_reuse(CONST INT_T fd)
Enable reuse option of socket fd
TUYA_ERRNO tal_net_get_errno(VOID)
Get error code of network
OPERATE_RET tal_net_set_timeout(CONST INT_T fd, CONST INT_T ms_timeout, CONST TUYA_TRANS_TYPE_E type)
Set timeout option of socket fd
OPERATE_RET tal_net_getsockopt(CONST INT_T fd, CONST TUYA_OPT_LEVEL level, CONST TUYA_OPT_NAME optname, VOID_T *optval, INT_T *optlen)
Get socket options
OPERATE_RET tal_net_set_keepalive(INT_T fd, CONST BOOL_T alive, CONST UINT_T idle, CONST UINT_T intr, CONST UINT_T cnt)
Set keepalive option of socket fd to monitor the connection
TUYA_ERRNO tal_net_connect_raw(CONST INT_T fd, VOID_T *p_socket, CONST INT_T len)
Connect to network with raw data
INT_T tal_net_get_nonblock(CONST INT_T fd)
Get no block file descriptors
INT_T tal_net_recv_nd_size(CONST INT_T fd, VOID_T *buf, CONST UINT_T buf_size, CONST UINT_T nd_size)
Receive data from network with need size
TUYA_ERRNO tal_net_close(CONST INT_T fd)
Close file descriptors
INT_T tal_net_select(CONST INT_T maxfd, TUYA_FD_SET_T *readfds, TUYA_FD_SET_T *writefds, TUYA_FD_SET_T *errorfds, CONST UINT_T ms_timeout)
Get available file descriptors
OPERATE_RET tal_net_set_bufsize(CONST INT_T fd, CONST INT_T buf_size, CONST TUYA_TRANS_TYPE_E type)
Set buffer_size option of socket fd
OPERATE_RET tal_net_fd_clear(INT_T fd, TUYA_FD_SET_T *fds)
Clear file descriptor from set
OPERATE_RET tal_net_fd_set(INT_T fd, TUYA_FD_SET_T *fds)
Add file descriptor to set
TUYA_ERRNO tal_net_listen(CONST INT_T fd, CONST INT_T backlog)
Listen to network