本文介紹本地通信HAL的相關接口。
HAL_UDP_close
- 原型:
void HAL_UDP_close(_IN_ intptr_t p_socket);
- 接口說明:調用此接口銷毀指定的UDP連接,釋放資源。
- 參數說明:
參數 數據類型 方向 說明 p_socket intptr_t 輸入 UDP socket句柄。 - 返回結果說明:此接口無返回參數。
HAL_UDP_close_without_connect
- 原型:
int HAL_UDP_close_without_connect(_IN_ intptr_t sockfd);
- 接口說明:調用此接口銷毀指定的UDP連接,釋放資源。
- 參數說明:
參數 數據類型 方向 說明 sockfd intptr_t 輸入 UDP socket句柄。 - 返回結果說明:
返回結果 說明 <0 操作失敗。 =0 操作成功。
HAL_UDP_create_without_connect
- 原型:
intptr_t HAL_UDP_create_without_connect(_IN_ const char *host, _IN_ unsigned short port);
- 接口說明:調用此接口創建一個本地的UDP socket,不發起任何網絡交互。
- 參數說明:
參數 數據類型 方向 說明 host const char * 輸入 UDP目的地址。 port unsigned short 輸入 UDP目的端口。 - 返回結果說明:
返回結果 說明 <0 創建失敗。 ≥0 創建成功,返回結果為UDP socket句柄。
HAL_UDP_joinmulticast
- 原型:
int HAL_UDP_joinmulticast(_IN_ intptr_t sockfd, _IN_ char *p_group);
- 接口說明:調用此接口在指定的UDP socket上發送加入組播組的請求。
- 參數說明:
參數 數據類型 方向 說明 sockfd intptr_t 輸入 指定用來發送組播請求的UDP socket。 p_group char * 輸入 指定要加入的組播組名稱。 - 返回結果說明:
返回結果 說明 <0 發送過程中出現錯誤或異常。 =0 發送成功。
HAL_UDP_recvfrom
- 原型:
int HAL_UDP_recvfrom(_IN_ intptr_t sockfd, _OU_ NetworkAddr *p_remote, _OU_ unsigned char *p_data, _IN_ unsigned int datalen, _IN_ unsigned int timeout_ms);
- 接口說明:調用此接口從指定的UDP句柄接收指定長度數據到緩沖區,阻塞時間不超過指定時長,且指定長度若接收完需提前返回,源地址保存在p_remote參數中。
- 參數說明:
參數 數據類型 方向 說明 sockfd intptr_t 輸入 UDP socket句柄。 p_remote NetworkAddr * 輸出 指向存放源網絡地址的指針。 p_data unsigned char * 輸出 指向數據接收緩沖區的指針。 datalen unsigned int 輸入 接收緩沖區的字節大小。 timeout_ms unsigned int 輸入 阻塞的超時時間,單位ms。 - 返回結果說明:
返回結果 說明 <0 接收過程中出現錯誤或異常。 =0 在指定的timeout_ms時間內,沒有接收到任何數據。 >0 在指定的timeout_ms時間內,實際接收到的數據字節數。
HAL_UDP_sendto
- 原型:
int HAL_UDP_sendto(_IN_ intptr_t sockfd, _IN_ const NetworkAddr *p_remote, _IN_ const unsigned char *p_data, _IN_ unsigned int datalen, _IN_ unsigned int timeout_ms);
- 接口說明:調用此接口向指定UDP句柄發送指定長度的數據,阻塞時間不超過指定時長,且指定長度若發送完需提前返回。
- 參數說明:
參數 數據類型 方向 說明 sockfd intptr_t 輸入 UDP socket句柄。 p_remote const NetworkAddr * 輸入 指向目標網絡地址的指針。 p_data const unsigned char * 輸入 指數據發送緩沖區的指針。 datalen unsigned int 輸入 待發送數據的字節長度。 timeout_ms unsigned int 輸入 阻塞的超時時間,單位ms。 - 返回結果說明:
返回結果 說明 <0 發送過程中出現錯誤或異常。 =0 在指定的timeout_ms時間內,沒有任何數據發送成功。 >0 在指定的timeout_ms時間內,實際發送的數據字節數。