tkl network | 네트워킹 API
더 보기tkl_network.c파일은 네트워크 통신 프로세스에 필요한 일련의 API를 제공합니다. 이 API는 소켓, 연결, 연결, 바인딩, 듣는, 자료, 받기 자료, 조정 및 소켓 선택권 및 다른 네트워크 가동을 창조합니다. 이 파일은 네트워크 API의 일반적인 취급을 정의하고 이러한 캡슐화 된 기능을 통해 크로스 플랫폼 네트워크 통신을 허용합니다.
API 설명
프로젝트
TUYA_ERRNO tkl_net_get_errno(void);
제품정보
네트워크 오류 코드를 검색합니다.
이름 *
모수 없음.
반환 값
반환 0 성공에, 그렇지 않으면 대상 시스템에 특정 오류 코드를 반환.
프로젝트
OPERATE_RET tkl_net_fd_set(const int fd, TUYA_FD_SET_T* fds);
제품정보
설정에 파일 descriptor를 추가합니다.
이름 *
fd: 추가될 파일 descriptor.fds: 파일 descriptor 설정에 포인터.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net fd clear의
OPERATE_RET tkl_net_fd_clear(const int fd, TUYA_FD_SET_T* fds);
제품정보
설정에서 파일 descriptor 제거.
이름 *
fd: 파일을 명확하게합니다.fds: 파일 descriptor 설정에 포인터.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
프로젝트
OPERATE_RET tkl_net_fd_isset(const int fd, TUYA_FD_SET_T* fds);
제품정보
file descriptor가 설정된 경우 체크 합니다.
이름 *
fd: 확인되는 파일 descriptor.fds: 파일 descriptor 설정에 포인터.
반환 값
기타 제품TRUEfile descriptor가 설정된 경우, 그렇지 않으면 반환FALSE.
프로젝트
OPERATE_RET tkl_net_fd_zero(TUYA_FD_SET_T* fds);
제품정보
파일 descriptor 설정에서 모든 파일 descriptors를 삭제합니다.
이름 *
fds: 파일 descriptor 설정에 포인터.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net 선택
int tkl_net_select(const int maxfd, TUYA_FD_SET_T *readfds, TUYA_FD_SET_T *writefds, TUYA_FD_SET_T *errorfds, const uint32_t ms_timeout);
제품정보
사용 가능한 파일 descriptors 세트를 검색합니다.
이름 *
maxfd: 최대 수 이상의 파일 descriptors를 검사합니다.readfds: 읽기 쉬운 파일 descriptors의 세트에 포인터.writefds: writable file descriptors의 집합에 포인터.errorfds: erroneous 파일 descriptors의 집합에 포인터.ms_timeout: 밀리초의 타임아웃 기간.
반환 값
사용 가능한 파일 descriptors 수를 반환합니다. 오류에 0 미만 또는 동일 값을 반환합니다.
tkl net get nonblock에 대 한
int tkl_net_get_nonblock(const int fd);
제품정보
비 차단 파일 descriptor를 검색합니다.
이름 *
fd: 파일 설명자.
반환 값
성공에 비블록 파일 descriptors의 수를 반환합니다; 오류에 0 이하 값을 반환합니다.
네트워크
OPERATE_RET tkl_net_set_block(const int fd, const BOOL_T block);
제품정보
file descriptor에 대한 blocking flag를 설정합니다.
이름 *
fd: 파일 설명자.block: 만약TRUE, 형태를 막는 세트; 만약에FALSE, non-blocking 형태에 세트.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net 닫기
TUYA_ERRNO tkl_net_close(const int fd);
제품정보
파일 descriptor를 닫습니다.
이름 *
fd: 파일 설명자.
반환 값
반환 0 성공에, 그렇지 않으면 대상 시스템에 특정 오류 코드를 반환.
tkl net 슈다운
TUYA_ERRNO tkl_net_shutdown(const int fd, const int how);
제품정보
file descriptor에서 읽기/쓰기 작업을 종료합니다.
이름 *
fd: 파일 설명자.how: 폐쇄의 유형.
반환 값
반환 0 성공에, 그렇지 않으면 대상 시스템에 특정 오류 코드를 반환.
tkl net socket create로
int tkl_net_socket_create(const TUYA_PROTOCOL_TYPE_E type);
제품정보
TCP 또는 UDP 소켓을 만듭니다.
이름 *
type: 프로토콜 유형, TCP 또는 UDP.
반환 값
파일 descriptor를 반환합니다.
네트워크
TUYA_ERRNO tkl_net_connect(const int fd, const TUYA_IP_ADDR_T addr, const uint16_t port);
제품정보
네트워크에 연결.
이름 *
fd: 파일 설명자.addr: 서버 주소 정보.port: 서버 포트 정보.
반환 값
반환 0 성공에, 그렇지 않으면 대상 시스템에 특정 오류 코드를 반환.
tkl net connect raw로
TUYA_ERRNO tkl_net_connect_raw(const int fd, void *p_socket_addr, const int len);
제품정보
raw data를 사용하여 네트워크에 연결합니다.
이름 *
fd: 파일 설명자.p_socket_addr: 원시 소켓 데이터.len: 데이터의 길이.
반환 값
반환 0 성공에, 그렇지 않으면 대상 시스템에 특정 오류 코드를 반환.
tkl net 빈드
TUYA_ERRNO tkl_net_bind(const int fd, const TUYA_IP_ADDR_T addr, const uint16_t port);
제품정보
네트워크에 소켓을 삽입합니다.
이름 *
fd: 파일 설명자.addr: 서버 주소 정보.port: 서버 포트 정보.
반환 값
반환 0 성공에, 그렇지 않으면 대상 시스템에 특정 오류 코드를 반환.
프로젝트
TUYA_ERRNO tkl_net_listen(const int fd, const int backlog);
제품정보
네트워크 연결 요청을 듣습니다.
이름 *
fd: 파일 descriptorbacklog: 커넥션의 최대 수는 커넥션을 할 수 있습니다.
반환 값
반환 0 성공에, 그렇지 않으면 대상 시스템에 특정 오류 코드를 반환.
프로젝트
TUYA_ERRNO tkl_net_accept(const int fd, TUYA_IP_ADDR_T *addr, uint16_t *port);
제품정보
네트워크 연결 요청을 수락합니다.
이름 *
fd: 파일 descriptoraddr: 수신기의 IP 주소.port: 수신기의 포트 번호.
반환 값
반환 0 성공에, 그렇지 않으면 대상 시스템에 특정 오류 코드를 반환.
프로젝트
TUYA_ERRNO tkl_net_send(const int fd, const void *buf, const uint32_t nbytes);
제품정보
네트워크에 데이터를 보냅니다.
이름 *
fd: 파일 descriptorbuf: 데이터가 전송되는 버퍼.nbytes: 버퍼의 길이
반환 값
전송된 바이트 수; 오류에 부정적인 값을 반환합니다.
tkl net send to에
TUYA_ERRNO tkl_net_send_to(const int fd, const void *buf, const uint32_t nbytes, const TUYA_IP_ADDR_T addr, const uint16_t port);
제품정보
지정된 서버에 데이터를 보냅니다.
이름 *
fd: 파일 descriptorbuf: 데이터가 전송되는 버퍼.nbytes: 버퍼의 길이addr: 서버 주소 정보.port: 서버 포트 정보.
반환 값
전송된 바이트 수; 오류에 부정적인 값을 반환합니다.
프로젝트
TUYA_ERRNO tkl_net_recv(const int fd, void *buf, const uint32_t nbytes);
제품정보
네트워크에서 데이터를 수신합니다.
이름 *
fd: 파일 descriptorbuf: 수신된 데이터를 저장하는 버퍼.nbytes: 버퍼의 길이
반환 값
주어진 바이트 수; 오류에 부정적인 값을 반환합니다.
tkl net recv nd size의 크기
int tkl_net_recv_nd_size(const int fd, void *buf, const uint32_t buf_size, const uint32_t nd_size);
제품정보
네트워크에서 지정된 크기의 데이터를 수신합니다.
이름 *
fd: 파일 descriptorbuf: 수신된 데이터를 저장하는 버퍼.buf_size: 버퍼의 크기.nd_size: 수신되는 데이터의 예상 크기.
반환 값
성공에 수신된 데이터의 실제 금액, 또는 오류에 부정적인 값.
프로젝트
TUYA_ERRNO tkl_net_recvfrom(const int fd, void *buf, const uint32_t nbytes, TUYA_IP_ADDR_T *addr, uint16_t *port);
제품정보
지정된 서버에서 데이터를 수신합니다.
이름 *
fd: 파일 descriptorbuf: 수신된 데이터를 저장하는 버퍼.nbytes: 버퍼의 길이addr[OUT]: 서버 주소 정보.port[OUT]: 서버 포트 정보.
반환 값
주어진 바이트 수; 오류에 부정적인 값을 반환합니다.
tkl net gethostbyname에 대 한
OPERATE_RET tkl_net_gethostbyname(const char *domain, TUYA_IP_ADDR_T *addr);
제품정보
도메인 이름의 주소 정보를 가져옵니다.
이름 *
domain: 도메인 이름 정보.addr: 주소 정보를 저장하는 포인터.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net socket bind의
OPERATE_RET tkl_net_socket_bind(const int fd, const char *ip);
제품정보
지정된 IP로 네트워크에 소켓을 삽입합니다.
이름 *
fd: 파일 descriptorip: IP 주소
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net set cloexec의
OPERATE_RET tkl_net_set_cloexec(const int fd);
제품정보
소켓을 설정하여 아이 프로세스에서 열 수 있습니다.fork전화.
이름 *
fd: 파일 descriptor
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net get socket ip에
OPERATE_RET tkl_net_get_socket_ip(const int fd, TUYA_IP_ADDR_T *addr);
제품정보
소켓 descriptor를 통해 IP 주소를 얻습니다.
이름 *
fd: 파일 descriptoraddr: IP 주소를 저장하는 포인터.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net str2 추가
TUYA_IP_ADDR_T tkl_net_str2addr(const char *ip_str);
제품정보
IP 문자열을 주소로 변환합니다.
이름 *
ip_str: IP 문자열.
반환 값
변환 된 IP 주소를 반환합니다.
프로젝트
char *tkl_net_addr2str(const TUYA_IP_ADDR_T ipaddr);
제품정보
IPv4 dotted-decimal 표기의 문자열로 IP 주소(호스트 바이트 순서)를 변환합니다.xx.xx.xx.xx).
이름 *
ipaddr: IP 주소
반환 값
결과를 반환 IP 문자열.
tkl net setsockopt의 장점
OPERATE_RET tkl_net_setsockopt(const int fd, const TUYA_OPT_LEVEL level, const TUYA_OPT_NAME optname, const void *optval, const int optlen);
제품정보
소켓 옵션 설정.
이름 *
fd: 파일 descriptorlevel: 옵션이 정의된 수준.optname: 옵션 이름.optval: 옵션 값에 포인터.optlen: 옵션 값의 길이.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net getsockopt에 대 한
OPERATE_RET tkl_net_getsockopt(const int fd, const TUYA_OPT_LEVEL level, const TUYA_OPT_NAME optname, void *optval, int *optlen);
제품정보
소켓 옵션 값을 가져옵니다.
이름 *
fd: 파일 descriptorlevel: 옵션이 정의된 수준.optname: 옵션 이름.optval: 옵션 값이 저장되는 점퍼.optlen: 옵션 값의 길이가 저장됩니다.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net set timeout에 대한 정보
OPERATE_RET tkl_net_set_timeout(const int fd, const int ms_timeout, const TUYA_TRANS_TYPE_E type);
제품정보
소켓 timeout 옵션을 설정합니다.
이름 *
fd: 파일 descriptorms_timeout: 밀리초의 타임아웃 기간.type: 전송 유형, 수신 또는 전송 중.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net set 부 크기
OPERATE_RET tkl_net_set_bufsize(const int fd, const int buf_size, const TUYA_TRANS_TYPE_E type);
제품정보
소켓 버퍼 크기 옵션을 설정합니다.
이름 *
fd: 파일 descriptorbuf_size: 바이트의 버퍼 크기.type: 전송 유형, 수신 또는 전송 중.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net
OPERATE_RET tkl_net_set_reuse(const int fd);
제품정보
소켓 재사용 옵션을 사용할 수 있습니다.
이름 *
fd: 파일 descriptor
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net disable nagle의 경우
OPERATE_RET tkl_net_disable_nagle(const int fd);
제품정보
소켓의 Nagle 알고리즘을 비활성화합니다.
이름 *
fd: 파일 descriptor
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
프로젝트
OPERATE_RET tkl_net_set_broadcast(const int fd);
제품정보
소켓 방송 옵션을 활성화합니다.
이름 *
fd: 파일 descriptor
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net set keepalive의 경우
OPERATE_RET tkl_net_set_keepalive(int fd, const BOOL_T alive, const uint32_t idle, const uint32_t intr, const uint32_t cnt);
제품정보
설정하기keepalive소켓을 위한 선택권은 연결을 감시합니다.
이름 *
fd: 파일 descriptoralive:keepalive옵션, 활성화 또는 비활성화.idle:keep idle옵션, 유휴 시간 (둘째); 이 시간에 데이터 교환이 없다면, 프로브가 시작됩니다.intr:keep interval선택권, 조사 간격.cnt:keep count선택권, 조사의 수.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net getsockname에 대 한
OPERATE_RET tkl_net_getsockname(int fd, TUYA_IP_ADDR_T *addr, uint16_t *port);
제품정보
특정 소켓에 대한 정보를 가져옵니다.
이름 *
fd: 파일 descriptoraddr: 소스 IP 주소.port: 소스 포트.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net getpeer이름
OPERATE_RET tkl_net_getpeername(int fd, TUYA_IP_ADDR_T *addr, uint16_t *port);
제품정보
특정 소켓의 대상 정보를 가져옵니다.
이름 *
fd: 파일 descriptoraddr: 목적지 IP 주소.port: 목적지 항구.
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.
tkl net sethostname의 경우
OPERATE_RET tkl_net_sethostname(const char *hostname);
제품정보
라우터에 표시되는 시스템 호스트명을 설정합니다.
이름 *
hostname: 호스트명
반환 값
기타 제품OPRT_OK성공에, 그렇지 않으면 오류 코드를 참조tuya_error_code.h.