Deserializacja pakietu danych z socket'a

Deserializacja pakietu danych z socket'a
B3
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 12 lat
  • Postów:3
0

Witam,

Przesyłam strukturę z serwera napisanego w C do klienta napisanego w Javie.
Jestem leniwy, więc struktura po stronie serwera jest po prostu rzutowana na tablicę bajtów i to jest cały proces serializacji ;)
Niestety po stronie klienta już nie jest tak kolorowo...
Szukam pomysłów jak w łatwy sposób odtworzyć wysłaną strukturę po stronie klienta. Zakładam, że deserializacja niewiele tu pomoże. Może macie jakieś inne koncepcje?

mychal
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Przedmonitorze Górne
0

Koncepcja jest taka żebyś pokazał jaką strukturę przesyłasz. Jeżeli klient jest w javie to raczej bez napisania jakiejś klasy konwertera się nie obejdzie.


I fart u die.
B3
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 12 lat
  • Postów:3
0

Ta aplikacja to dopiero szkielet. Załóżmy, że w tej chwili przesyłam taką strukturę:

Kopiuj
typedef struct SDataForServer{
    int size;
    int counter;
}SDataForServer_t;
 

Domyślnie struktura będzie nieco większa, będzie zawierała dużo fizycznych danych typu: przyśpieszenie, natężenie pola, przyśpieszenie kątowe, prędkość obrotowa silników, timestamp, itp...
Rozumiem, że jedynym rozwiązaniem w tej sytuacji jest 'ręczne wycinanie' segmentów bajtów z macierzy i rzutowanie ich z powrotem na typy proste (int, float...)?

edytowany 1x, ostatnio: bobjob342
mychal
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Przedmonitorze Górne
0

I fart u die.
B3
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 12 lat
  • Postów:3
0

Używam klasy InputStream. Znając życie będą problemy z prawidłową konwersją przez DataInputStream, dlatego dla pewności napisze swoje funkcje.

mychal
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Przedmonitorze Górne
0

Znając życie będą problemy z wymyślaniem koła na nowo. Użyj funkcji, które już ktoś napisał.


I fart u die.
VI
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 11 lat
  • Postów:212
1

https://developers.google.com/protocol-buffers/docs/proto?hl=pl wygląda obiecująco, jesteś na 100% pewien z wyborem zwykłego C?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.