Przekazywanie struktury przez gniazda w C

Próbuję przekazać całą strukturę od klienta do serwera lub odwrotnie. Przyjmijmy następującą strukturę

struct temp {
  int a;
  char b;
}

ja używamwysłać do i wysłanie adresu zmiennej struktury i otrzymanie jej po drugiej stronie za pomocąrecvfrom funkcjonować. Ale nie jestem w stanie uzyskać oryginalnych danych wysłanych przez odbiorcę. W funkcji sendto zapisuję odebrane dane do zmiennej typu struct temp.

n = sendto(sock, &pkt, sizeof(struct temp), 0, &server, length);
n = recvfrom(sock, &pkt, sizeof(struct temp), 0, (struct sockaddr *)&from,&fromlen);

Gdzie pkt jest zmienną typu struct temp.

Mimo że otrzymuję 8 bajtów danych, ale jeśli próbuję je wydrukować, po prostu wyświetlają się wartości śmieci. Jakaś pomoc w naprawie?

UWAGA: Nie trzeba używać bibliotek innych firm.

EDIT1: Jestem naprawdę nowy w tej koncepcji serializacji ... Ale bez robienia serializacji nie mogę wysłać struktury przez gniazda?

EDIT2: Kiedy próbuję wysłać ciąg lub zmienną całkowitą za pomocąwysłać do irecvfrom funkcje Odbieram dane poprawnie pod koniec odbiornika. Dlaczego nie w przypadku konstrukcji? Jeśli nie muszę korzystać z funkcji serializacji, to czy powinienem wysłać każdego członka struktury indywidualnie? To naprawdę nie jest odpowiednie rozwiązanie, ponieważ jeśli liczba członków jest „n”, to liczba „n” linii kodu jest dodawana tylko w celu wysyłania lub odbierania danych.

questionAnswers(7)

yourAnswerToTheQuestion