Я бы отправил структуру через сокеты C ++.Это пример структуры:
struct PIPPO
{
int x;
int y;
};
, которую я использую с:
PIPPO test2;
test2.x = 10;
test2.y = 20;
, и у меня есть код выше для сериализации и отправки его через сокет.Проблема в том, что если я пытаюсь получить значение HEX тестовой переменной, я вижу только 0A и воздействую на другой компьютер, который получает данные, я не могу преобразовать двоичные данные в структуру.Кто-нибудь может мне помочь?
template <class T> void SerializeData(char *outputArray, T inputData)
{
memcpy(outputArray, &inputData, sizeof(inputData));
}
char *StrToHexStr(char *str)
{
char *newstr = new char[(strlen(str)*2)+1];
char *cpold = str;
char *cpnew = newstr;
while('\0' != *cpold) {
sprintf(cpnew, "%02X", (char)(*cpold++));
cpnew+=2;
}
*(cpnew) = '\0';
return(newstr);
}
char *test = new char[sizeof(PIPPO)];
memcpy((void *)&test, (void *)&test2, sizeof(test2));
send(this->m_socket, test, strlen(test), 0);