Mam kłopoty z odebraniem pakietu po połączeniu się z serwerem gadu-gadu. Konkretnie otrzymuje nieciekawy wynik i mam kilka pytań co do tego.

Oto mój kod w qt4:

void MainWindow::s_login(){
    QByteArray i = socket->read(12);
    qDebug() << "DATA_LOGIN: " << i.toHex();
}

Wynik:
DATA_LOGIN: "0100000004000000dc5c60ca"

A więc po połączeniu się z serwerem oczekuję na jego odpowiedź, funkcją tą odbieram pakiet, no i tu pojawia się problem. Jak widać w kodzie musiałem dokonać rzutowania toHex() do typu szesnastkowego bo bez tego otrzymywałem:
DATA_LOGIN: "
Moje pytanie brzmi, dlaczego tak się dzieje, że nie otrzymuje wartości typu 0x0001 tylko 01000000 i czy ostatnie 4bajty są ziarnem, które mogę wykorzystywać w takiej postaci jak odebrałem? W protokole gadu-gadu wynik zapisuje się w trzech zmiennych typu int, to dlaczego gdy ja dokonuje rzutowania na int otrzymuje wartość równą 0?? :(

Wielkie dzięki wszystkim użytkownikom za uwagę i pomoc.