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