Recebendo dados do Java-Client (dados contém int, short, string)

Eu estava procurando por horas para obter uma resposta sobre a minha pergunta, mas não encontrei nada. Talvez eu consiga alguma ajuda aqui.

O que estou tentando fazer: Um cliente Java envia uma mensagem para um C-Server. A mensagem contém diferentes tipos como integer, short e também uma string (por exemplo, message = int: total_msg_length; short: operação; string: hello -> total_msg-length = 4 (tamanho do inteiro), operação = 2 (tamanho do short) Olá = 5 (cada letra é 1 byte = 5).

Então, como posso receber a mensagem no meu servidor? O código abaixo recebe um Integer (funciona bem). O próximo passo será receber um curto e, em seguida, uma string (convertida em 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;

Existe uma maneira de usar uma matriz de bytes em vez de buffer de char? Sou grato por toda ajuda. Por favor, desculpe o meu inglês ruim, eu sou da Alemanha :-)

questionAnswers(1)

yourAnswerToTheQuestion