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
19extern const TUYA_IP_ADDR_T ty_ip_addr_any;
20extern const TUYA_IP_ADDR_T ty_ip_addr_broadcast;
21extern const TUYA_IP_ADDR_T ty_ip_addr_loopback;
22extern const TUYA_IP_ADDR_T ty_ip6_addr_any;
23
24/* tuya sdk definition of 127.0.0.1 */
25#define TY_IPADDR_LOOPBACK ty_ip_addr_loopback
26/* tuya sdk definition of 0.0.0.0 */
27#define TY_IPADDR_ANY ty_ip_addr_any
28/* tuya sdk definition of 255.255.255.255 */
29#define TY_IPADDR_BROADCAST ty_ip_addr_broadcast
30
31#define TY_IP6_ADDR_ANY ty_ip6_addr_any
32
42TUYA_ERRNO tal_net_get_errno(VOID);
43
54OPERATE_RET tal_net_fd_set(INT_T fd, TUYA_FD_SET_T* fds);
55
66OPERATE_RET tal_net_fd_clear(INT_T fd, TUYA_FD_SET_T* fds);
67
78OPERATE_RET tal_net_fd_isset(INT_T fd, TUYA_FD_SET_T* fds);
79
89OPERATE_RET tal_net_fd_zero(TUYA_FD_SET_T* fds);
90
91//Add file descriptor to set
92#define TAL_FD_SET(n,p) tal_net_fd_set(n, p)
93//Clear file descriptor from set
94#define TAL_FD_CLR(n, p) tal_net_fd_clear(n, p)
95//Check file descriptor is in set
96#define TAL_FD_ISSET(n,p) tal_net_fd_isset(n,p)
97//Clear all descriptor in set
98#define TAL_FD_ZERO(p) tal_net_fd_zero(p)
99
113INT_T tal_net_select(CONST INT_T maxfd, TUYA_FD_SET_T *readfds, TUYA_FD_SET_T *writefds,
114 TUYA_FD_SET_T *errorfds, CONST UINT_T ms_timeout);
115
125INT_T tal_net_get_nonblock(CONST INT_T fd);
126
137OPERATE_RET tal_net_set_block(CONST INT_T fd, CONST BOOL_T block);
138
148TUYA_ERRNO tal_net_close(CONST INT_T fd);
149
159INT_T tal_net_socket_create(CONST TUYA_PROTOCOL_TYPE_E type);
160
170INT_T tal_net_socket_create_v6(IN CONST TUYA_PROTOCOL_TYPE_E type);
171
181OPERATE_RET tal_net_add_membership(CONST INT_T fd, TUYA_IP_ADDR_T src_addr, TUYA_IP_ADDR_T group_addr);
182
194TUYA_ERRNO tal_net_connect(CONST INT_T fd, CONST TUYA_IP_ADDR_T addr, CONST UINT16_T port);
195
207TUYA_ERRNO tal_net_connect_raw(CONST INT_T fd, VOID_T *p_socket, CONST INT_T len);
208
220TUYA_ERRNO tal_net_bind(CONST INT_T fd, CONST TUYA_IP_ADDR_T addr, CONST UINT16_T port);
221
232TUYA_ERRNO tal_net_listen(CONST INT_T fd, CONST INT_T backlog);
233
245TUYA_ERRNO tal_net_send(CONST INT_T fd, CONST VOID_T *buf, CONST UINT_T nbytes);
246
260TUYA_ERRNO tal_net_send_to(CONST INT_T fd, CONST VOID_T *buf, CONST UINT_T nbytes,
261 CONST TUYA_IP_ADDR_T addr, CONST UINT16_T port);
262
274INT_T tal_net_accept(CONST INT_T fd, TUYA_IP_ADDR_T *addr, UINT16_T *port);
275
287TUYA_ERRNO tal_net_recv(CONST INT_T fd, VOID_T *buf, CONST UINT_T nbytes);
288
301INT_T tal_net_recv_nd_size(CONST INT_T fd, VOID_T *buf, CONST UINT_T buf_size, CONST UINT_T nd_size);
302
316TUYA_ERRNO tal_net_recvfrom(CONST INT_T fd, VOID_T *buf, CONST UINT_T nbytes,
317 TUYA_IP_ADDR_T *addr, UINT16_T *port);
318
330OPERATE_RET tal_net_set_timeout(CONST INT_T fd, CONST INT_T ms_timeout, CONST TUYA_TRANS_TYPE_E type);
331
343OPERATE_RET tal_net_set_bufsize(CONST INT_T fd, CONST INT_T buf_size, CONST TUYA_TRANS_TYPE_E type);
344
354OPERATE_RET tal_net_set_reuse(CONST INT_T fd);
355
365OPERATE_RET tal_net_disable_nagle(CONST INT_T fd);
366
376OPERATE_RET tal_net_set_broadcast(CONST INT_T fd);
377
388OPERATE_RET tal_net_gethostbyname(IN CONST CHAR_T *domain,IN CONST DNS_MODE_E mode, OUT TUYA_IP_ADDR_T *addr);
389
403OPERATE_RET tal_net_set_keepalive(INT_T fd, CONST BOOL_T alive, CONST UINT_T idle, CONST UINT_T intr, CONST UINT_T cnt);
404
415OPERATE_RET tal_net_get_socket_ip(INT_T fd, TUYA_IP_ADDR_T *addr);
416
417
427TUYA_IP_ADDR_T tal_net_str2addr(CONST CHAR_T *ip_str);
428
438CHAR_T* tal_net_addr2str(TUYA_IP_ADDR_T ipaddr);
439
453OPERATE_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);
454
468OPERATE_RET tal_net_getsockopt(CONST INT_T fd, CONST TUYA_OPT_LEVEL level, CONST TUYA_OPT_NAME optname, VOID_T *optval, INT_T *optlen);
469
479OPERATE_RET tal_net_sethostname(CONST CHAR_T *hostname);
480
481#ifdef __cplusplus
482}
483#endif
484
485#endif // __TAL_NETWORK_H__
486
INT_T tal_net_socket_create_v6(IN CONST TUYA_PROTOCOL_TYPE_E type)
Create a IPv6 tcp/udp socket
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
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
OPERATE_RET tal_net_sethostname(CONST CHAR_T *hostname)
Set the system hostname
OPERATE_RET tal_net_gethostbyname(IN CONST CHAR_T *domain, IN CONST DNS_MODE_E mode, OUT TUYA_IP_ADDR_T *addr)
Get address information by domain
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
OPERATE_RET tal_net_add_membership(CONST INT_T fd, TUYA_IP_ADDR_T src_addr, TUYA_IP_ADDR_T group_addr)
add member ship
TUYA_ERRNO tal_net_listen(CONST INT_T fd, CONST INT_T backlog)
Listen to network