lwip payload 转字符串
时间: 2023-09-17 14:13:58 浏览: 170
字符串转换
在lwIP中,payload实际上是一个指向数据的指针和数据的长度。如果你想将其转换为字符串,可以使用以下代码:
```c
char* payload_to_string(struct pbuf* p) {
char* str = (char*) malloc(p->tot_len + 1);
if (str == NULL) {
return NULL;
}
int offset = 0;
struct pbuf* q;
for (q = p; q != NULL; q = q->next) {
memcpy(str + offset, q->payload, q->len);
offset += q->len;
}
str[p->tot_len] = '\0';
return str;
}
```
这个函数将遍历整个pbuf链表,将每个pbuf的payload复制到一个新分配的字符串中。最后,它会在字符串的结尾添加一个null字符,以确保字符串以null结尾。请注意,由于这个函数使用了malloc,因此调用者应该记得在使用完字符串后释放它。
阅读全文