gpt4 book ai didi

c - 如何从套接字读取无符号字符

转载 作者:太空宇宙 更新时间:2023-11-04 02:51:55 25 4
gpt4 key购买 nike

我必须从套接字接收一个 UDP 数据包。在此数据包中,小时、分钟和秒作为 UNSIGNED CHAR 发送。当我在 char[] 中收到它并放入 TextBox 进行显示时,它不显示发送的实际数据,而是显示不同的值。

char buffer[10];
udpSocketRxCDP->readDatagram(buffer, sizeof(buffer));
ui->textEditsec->setText(buffer[2]);

请建议我如何获取实际数据。

最佳答案

当您从套接字读取时,您正在读取原始数据。如果您将它读入 char[] 缓冲区并按原样使用它,那么数据将被解释为 char。因此,要么在需要时将数据类型转换为 unsigned char:

ui->textEditsec->setText( (unsigned char) buffer[2] );  

或者定义一个合适的 struct 并对其进行类型转换:

struct mypkt
{
unsigned char hour;
unsigned char minute;
unsigned char second;
...
};

ui->textEditsec->setText( ((mypkt*)buffer)->second );

无论哪种方式,假设 setText() 实际上需要一个 char* 字符串作为输入,然后使用 sprintf() 或类似的函数来格式化一个字符串:

char str[12];
sprintf(str, "%d", (int) ((mypkt*)buffer)->second);
ui->textEditsec->setText(str);

关于c - 如何从套接字读取无符号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21289744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com