我正在开发一个服务器-客户端应用程序,基本上模拟了一个聊天室。这是一项学校作业,协议规范要求有些严格。
我有一个字符数组,将存储来自客户端的所有消息。
客户端必须首先将消息长度作为uint8_t发送,然后将消息本身作为char数组发送。
我的问题是,我需要存储在实际消息发送之前发送的uint8_t值,但我只能使用消息数组来存储从客户端发来的任何信息。
如果我没有弄错,char数组将不会存储发送的uint8_t除非我以某种方式进行转换。
我该如何将uint8_t转换为字符并重新转换为uint8_t?
我已经尝试在这里寻找类似的问题,但没有找到示例。
server.c
我有一个字符数组,将存储来自客户端的所有消息。
客户端必须首先将消息长度作为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);