Daten vom Java-Client empfangen (Daten enthalten int, short, string)

Ich habe stundenlang nach einer Antwort auf meine Frage gesucht, aber nichts gefunden. Vielleicht bekomme ich hier Hilfe.

Was ich versuche zu tun: Ein Java-Client sendet eine Nachricht an einen C-Server. Die Nachricht enthält verschiedene Typen wie Integer, Short und auch einen String (zB message = int: total_msg_length; short: operation; string: hallo -> total_msg-length = 4 (Größe des Integer), operation = 2 (Größe des Short) Hallo = 5 (jeder Buchstabe ist 1 Byte = 5).

Wie kann ich die Nachricht auf meinem Server empfangen? Der folgende Code erhält eine Ganzzahl (funktioniert einwandfrei). Im nächsten Schritt erhalten Sie eine kurze und dann eine Zeichenfolge (konvertiert in 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;

Gibt es eine Möglichkeit, ein Byte-Array anstelle des Zeichenpuffers zu verwenden? Ich bin dankbar für jede Hilfe. Bitte entschuldigen Sie mein schlechtes Englisch, ich komme aus Deutschland :-)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage