从lwip的pubf中提取接收到的数据
时间: 2023-08-14 11:02:46 浏览: 157
lwip数据接收发送过程.pdf
5星 · 资源好评率100%
从lwip的pbuf中提取接收到的数据,可以使用pbuf_copy_partial()函数。这个函数可以从pbuf中复制指定长度的数据到一个缓冲区中,例如:
```c
char buf[MAX_LEN];
u16_t len = pbuf_copy_partial(p, buf, MAX_LEN, 0);
```
在这个例子中,p是指向接收到的pbuf的指针,MAX_LEN是buf缓冲区的大小,0表示从pbuf的起始位置开始复制数据。pbuf_copy_partial()函数将复制len个字节的数据到buf缓冲区中,并返回实际复制的字节数。如果pbuf中的数据长度小于len,则只会复制pbuf中的所有数据。
另外,如果接收到的数据跨越了多个pbuf,也可以使用pbuf_copy_partial()函数进行拼接。只需要依次对每个pbuf调用pbuf_copy_partial()函数,将数据复制到同一个缓冲区中即可。
阅读全文