本文介绍本地通信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时间内,实际发送的数据字节数。