本文介紹本地通信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時間內,實際發送的數據字節數。