---
title: RecvData
description: "接收指令流引擎服务端传输的数据。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcps/boostcph/instrucstreamengine/kunpengcpsinstruction_17_0008.html
sourcePath: /source/zh/kunpengcps/boostcph/instrucstreamengine/kunpengcpsinstruction_17_0008.html
indexId: a65cdb2b450011357a0d8fd2ba8947422cb43d98551f7712128b162be6bdd39c85
---
# RecvData

#### 函数功能

接收指令流引擎服务端传输的数据。


#### 函数原型

int32_t RecvData(VMIMsgType type, uint8_t* data, uint32_t length)


#### 参数说明

| 参数名称 | 输入/输出 | 参数类型 | 参数描述 |
| --- | --- | --- | --- |
| type | 输入 | VMIMsgType | 接收数据类型，请参考指令流数据类型定义。 |
| data | 输出 | uint8\_t\* | 接收type类型数据的buffer地址。 |
| length | 输入 | uint32\_t | 接收type类型数据的buffer长度。 |


#### 返回值说明

- 大于0：表示接收到type类型数据的长度。
- VMI_CLIENT_RECV_ORDER_FAIL：表示接收函数执行顺序非法。
- VMI_CLIENT_RECV_MEMCPY_FAILED：表示接收函数内存拷贝失败。
- VMI_CLIENT_RECV_LENGTH_NO_MATCH：表示传入的length小于实际接收到数据长度。
- VMI_CLIENT_RECV_DATA_NULL：表示接收到的数据为空，当前无数据。
- VMI_CLIENT_RECV_INVALID_PAPAM：表示该函数传入的参数非法。


#### 调用示例

```
private InstructionEngine engine = new InstructionEngine();
void Test()  
{    
    const int MAX_BUF_LEN =1048576;
    uint8_t *recvBuf = new uint8_t[MAX_BUF_LEN]; 
    while (!stopFlag) { 
        int packetLen = RecvData(VMIMsgType::AUDIO, recvBuf, MAX_BUF_LEN); 
        if (packetLen > 0) { 
            // continue recv data when there is data found 
             …
            continue; 
        } 
     }
}
```
