Lwip tcp_write有效负载pbuf使用memcpy

我正在使用lwip库进行TCP / IP配置。

我正在尝试使用pbuf结构和memcpy函数发送“ Hello”字符缓冲区。但是,这给了我不一致的结果。

当我从Wireshark(选项1)监听端口时,“ Hello”已经位于有效负载中。但是,它位于有效负载的中间,例如(不是从array [0]元素开始)。它从char数组的第40个元素开始,在此之前,“ Hello”值还包含一些垃圾值。

struct pbuf *p;
char msg[400] = "Hello";

// Option 1: Gives me Hello with junk value
p = pbuf_alloc(PBUF_TRANSPORT,400,PBUF_POOL);
if (!p)
{
   xil_printf("Error while allocating pbuf \n\r");
}

memcpy(p->payload,msg,400);
err = tcp_write(pcb,p,p-> len,1);

// Option 2: It's OK
err = tcp_write(pcb,"Hello\n\r",strlen("Hello\n\r"),1);

我可以在应用程序中使用选项2。但是,我现在也想使用选项1来做到这一点。

sonya501 回答:Lwip tcp_write有效负载pbuf使用memcpy

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3146651.html

大家都在问