Passando uma estrutura por meio de Sockets em C

Eu estou tentando passar toda a estrutura do cliente para o servidor ou vice-versa. Vamos assumir minha estrutura da seguinte forma

struct temp {
  int a;
  char b;
}

estou usandoenviar para e enviar o endereço da variável estrutura e recebê-lo do outro lado usando orecvfrom função. Mas eu não sou capaz de obter os dados originais enviados no final do recebimento. Na função sendto estou salvando os dados recebidos na variável do tipo struct temp.

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

Onde pkt é a variável do tipo struct temp.

Embora eu esteja recebendo 8 bytes de dados, mas se eu tentar imprimir, é simplesmente mostrando valores de lixo. Alguma ajuda para consertar isso?

NOTA: Nenhuma biblioteca de terceiros precisa ser usada.

EDIT1: Eu sou realmente novo para este conceito de serialização .. Mas sem fazer serialização não posso enviar uma estrutura via sockets?

EDIT2: Quando tento enviar uma string ou uma variável inteira usando oenviar para erecvfrom funções Estou recebendo os dados corretamente no final do receptor. Por que não no caso de uma estrutura? Se eu não tiver que usar a função de serialização, devo enviar cada membro da estrutura individualmente? Isso realmente não é uma solução adequada, pois se houver um número "n" de membros, haverá um número "n" de linhas de código adicionadas apenas para enviar ou receber dados.

questionAnswers(7)

yourAnswerToTheQuestion