Я пытаюсь передать всю структуру от клиента к серверу или наоборот. Предположим, что моя структура выглядит следующим образом
struct temp {
int a;
char b;
}
Я использую sendto и отправляю адрес структурной переменной и получая ее с другой стороны с помощью функции recvfrom. Но я не могу получить исходные данные, отправленные на принимающей стороне. В функции sendto я сохраняю полученные данные в переменной типа temp temp.
n = sendto(sock, &pkt, sizeof(struct temp), 0, &server, length);
n = recvfrom(sock, &pkt, sizeof(struct temp), 0, (struct sockaddr *)&from,&fromlen);
Где pkt - это переменная типа struct temp.
Хотя я получаю 8байт данных, но если я пытаюсь распечатать, это просто показывает значения мусора. Любая помощь для исправления на нем?
ПРИМЕЧАНИЕ. Нет сторонних библиотек.
EDIT1: Я действительно новичок в этой концепции сериализации. Но, не делая сериализации, я могу отправить структуру через сокеты?
EDIT2: Когда я пытаюсь отправить строку или целочисленную переменную с помощью функций sendto и recvfrom, я правильно получаю данные приемник конец. Почему не в случае структуры? Если мне не нужно использовать функцию сериализации, я должен отправлять каждый член структуры отдельно? Это действительно не подходящее решение, так как если есть "n" число членов, тогда существует "n" количество строк кода, добавленных только для отправки или получения данных.