如何显示缓冲区中的值

how to display values from buffer

本文关键字:缓冲区 显示 何显示      更新时间:2023-10-16

我正在尝试在缓冲区中显示值。

客户端节点将其温度和数据长度作为缓冲区中的有效载荷发送到服务器。然后,服务器应该接收并显示输入的相同值

我有以下内容:

    handler(void)
    {
        memset(buf, 0, MAX_PAYLOAD_LEN);//set payload
        if(uip_newdata()) { //if new data is received from client
            leds_on(LEDS_RED);
            len = uip_datalen();
            memcpy(buf, uip_appdata, len); 
            printf("buffer = %s", buf);
            PRINTF("%unr bytes from [", len);
            PRINT6ADDR(&UIP_IP_BUF->srcipaddr);
            PRINTF("]:%unr", UIP_HTONS(UIP_UDP_BUF->srcport));        
        }

我有一种感觉,memcpy行或"printf"行是错误的,因为其他printf工作。

请帮忙Json

我不知道你想从缓冲区中提取什么样的数据,但如果它的开头包含一个"\0",那么printf("buffer=%s",buf);不会显示任何数据。

当我想调试缓冲区时,我知道输出不包含ASCII字符,我使用以下示例:

char buf[MAX_BUF_LEN];
do_fill_buffer_stuff(buf);
// Print the output of the buffer as Hexadecimal values:
for (int i = 0; i < MAX_BUF_LEN; i++) {
    printf("%02x ", buf[i] & 0xff);
}
printf("n");

这将在缓冲区中提供一系列十六进制值。