Alternatywa dla komunikacji 'socket'

0

Witam,
Pracuję nad czymś, co hipotetycznie można nazwać hełmem VR (prawda jest dużo bardziej bolesna, jestem początkujący i w dodatku przed studiam. Uczę się poprzez obserwację i nie zamierzam nawet robić 100% VR, bo jest to dla ludzi dużo bardziej wykształconych niż ja.), "samodzielnie" programuję dopiero od niedawna i dosłownie wczoraj (chyba) zrozumiałem dlaczego komunikacja TCP nie działa tak jak ja chcę. Czy dobrze rozumiem, że bufor nie oczyszcza się na bieżąco (bo taką miałem nadzieję i przyznaję, nie czytałem o tym dużo), a dane zamiast się podmieniać, gromadzą się w nim i chcąc "przekierowywać" odczyty z żyroskopu do GUI "na żywo", w pętli odczytów musiałbym za każdym pomiarem "przesuwać" znaki które odczytuję ? Tzn. jak mam przesyłane powiedzmy łańcuchy znaków x1="abc" x2="def" to hipotetycznie po wysłaniu tych dwóch łańcuchów, pierwszy będzie zajmował w buforze miejsce [0:3], a drugi [3:6] ? A może problem tkwi w szybkości (nie prędkości) przesyłu ?

Chciałbym zrealizować ten projekt do wakacji i dlatego przychodzę z zapytaniem (oczywiście nie po gotowe rozwiązania): jakiej metody komunikacji po sieci użyć, żeby można było zamieniać te same miejsca w ciągu odebranych znaków na bieżąco ? Próbowałem UDP, ale tego jeszcze niezbyt rozumiem.

0

Co rozumiesz przez "bufor"? Socket oczyszcza się kiedy z niego czytasz. Nie odczytasz z niego dwa razy tych samych danych. Jeśli nie odczytujesz a dane przychodzą to są gromadzone a potem odczyt zdejmuje wszystko, jeśli nie limitujesz ile bajtów odczytać. Jeśli ci to przeszkadza to możesz odczytywać po X bajtów zawsze, co za problem?
Poza tym nie wiem czy TCP to sensowne rozwiązanie akurat, ale to bez znaczenia bo UDP zachowuje sie tak samo w kontekście odbierania danych.

0

Dziękuję za odp. W takim razie byłem kompletnie w błędzie.
Napiszę sobie ten kod od nowa bo mi tu coś nie pasuje - jakby w nieskończonej pętli czytał tylko raz (tzn. tylko za pierwszym jej wykonaniem).
W tym czasie: na co zamienić TCP ?

0

Proponuje przeczytać jaka jest różnica między TCP i UDP, niemniej wydaje mi się że UDP bardziej pasuje w twojej sytuacji.

0

Ostatecznie wychodzi na to, że muszę komuś opowiedzieć o problemie, by go rozwiązać... Ech...
To ja (jak zwykle) zrobiłem głupi błąd w kodzie serwera... :/
UDP nie działa tak jak potrzebuję, więc póki co zostawię ten temat choć w przeciągu tego roku na pewno wybadam co i jak z to jest z tym wszystkim :)
Dzięki za rozjaśnienie sytuacji.

EDIT: Konwersja do .exe spierniczyła mi biblioteki, już 2 razy reinstalowałem wszystko. Nie wykrywa gtk i gobject ;_;

1 użytkowników online, w tym zalogowanych: 0, gości: 1