Odbieranie danych z Java-Client (dane zawierają int, short, string)

Szukałem godzin, aby uzyskać odpowiedź na moje pytanie, ale nic nie znalazłem. Może dostanę tu pomoc.

Co próbuję zrobić: Klient Java wysyła wiadomość do serwera C-Server. Wiadomość zawiera różne typy, takie jak liczba całkowita, krótka, a także łańcuch (np. Message = int: total_msg_length; short: operation; string: hello -> total_msg-length = 4 (rozmiar liczby całkowitej), operacja = 2 (rozmiar short) , witaj = 5 (każda litera to 1 bajt = 5).

Jak więc mogę otrzymać wiadomość na moim serwerze? Poniższy kod otrzymuje liczbę całkowitą (działa dobrze). Następnym krokiem będzie otrzymanie krótkiego, a następnie ciągu (przekonwertowanego w US-ASCII).

int *msg;
int recv_size;
int final_msg;

if( (recv_size = recv(client_socket, &msg, sizeof(msg), 0 )) < 0 ){
    error_exit("Fehler bei recv(message_len)");
}

final_msg = endian_swap(msg);
printf("Message: %d\n", final_msg);

return final_msg;

Czy istnieje sposób na użycie tablicy bajtów zamiast bufora char? Jestem wdzięczny za każdą pomoc. Proszę wybaczyć mój zły angielski, jestem z Niemiec :-)

questionAnswers(1)

yourAnswerToTheQuestion