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 :-)