기본적으로 채팅 룸을 시뮬레이트하는 서버 클라이언트 응용 프로그램이 있습니다. 이것은 학교 과제이며 프로토콜 사양은 다소 엄격합니다.문자 배열을 uint8_t로 바꾸는 방법
클라이언트의 모든 메시지를 저장할 char 배열이 있습니다.
클라이언트는 먼저 메시지의 길이를 uint8_t로 보낸 다음 문자 배열로 메시지 자체를 보내야합니다.
내 문제는 실제 메시지가 전송되기 전에 보내지는 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
는이
typedef
unsigned char
(당신은 가능성이 가장 높은)에, 단순히 걸릴 처음이다 아키텍처에 경우
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);
나는 그 장면을 줄 것이다. 감사! – fatalError