【发布时间】:2017-03-27 13:38:28
【问题描述】:
我正在开发一个服务器-客户端应用程序,它基本上模拟了一个聊天室。这是学校的作业,协议规范有些严格。
我有一个 char 数组,它将存储来自客户端的所有消息。
客户端必须首先将消息的长度作为 uint8_t 发送,然后将消息本身作为 char 数组发送。
我的问题是我需要存储在发送实际消息之前发送的 uint8_t 值,但我只能使用消息数组来存储来自客户端的任何信息。
如果我没记错的话,char 数组不会存储发送过来的 uint8_t,除非我以某种方式强制转换它。
如何将 uint8_t 转换为字符再转换回 uint8_t?
我已尝试在此处查找类似问题,但找不到示例。
server.c
char msg[100];
recv(clients_sd, msg, sizeof(msg), 0);
uint8_t len; /* store the length of the message here */
char message_received[len];
recv(clients_sd, message_received, sizeof(message_received), 0); /* get and store the message here */
client.c
uint8_t length = 21;
char clients_message[] = "Hi how are you today?";
send(servers_sd, &length, sizeof(length), 0);
send(serers_sd, &clients_message, sizeof(clients_message), 0);
【问题讨论】:
标签: c casting send recv uint8t