Сохранен 13
https://2ch.hk/pr/res/1010204.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C++ Winsock2 чтение структуры (float float float float float float)

 Аноним 22/06/17 Чтв 22:20:00 #1 №1010204 
4294485.png
Аноны, никак не получается прочитать данные из программы OpenTrack. Он отправляет 6 float, с клиента UDP, на сервер UDP порт 4242.

Сам я на с++ не кодю.

Пробовал множество примеров, вместо данных нули, а входящие данные точно не нули.

https://pastebin.com/raw/b4VsmcVk

Спасибо за любую помощь.
Аноним 22/06/17 Чтв 23:05:29 #2 №1010226 
char buffer[8192] - сюда приходят данные?
memcpy(&OpenTrackPacket, &buffer, sizeof(TOpenTrackPacket)); - Это так не работает. Читай про преобразование типов в С++, и это не С++, это Сишка.
Аноним 22/06/17 Чтв 23:08:20 #3 №1010228 
>>1010226
какие-то данные приходят, но как их прочитать? Сам на си не программирую, каким образом можно прочитать 6 флоатов?
Аноним 22/06/17 Чтв 23:16:15 #4 №1010229 
>>1010228
https://pastebin.com/jQxawMNs
Аноним 22/06/17 Чтв 23:19:47 #5 №1010235 
>>1010229
Так, а прочитать буфер UDP в эту структуру через memcpy или как-то иначе?
Аноним 22/06/17 Чтв 23:23:42 #6 №1010239 
>>1010235
Я не знаю что приходит в buffer. Через memcpy не выйдет. Парси если данные идут в особом формате, или побайтово выдерай из буфера, с учетом офсета и размера float в твоей системе.
Аноним 22/06/17 Чтв 23:41:12 #7 №1010261 
Посмотрел какой-то пример, написал похоже, там тоже флоат, но не читает все равно.

Вот мой свежий нерабочий код - https://pastebin.com/raw/rUxfeCZh

Вот пример данных:
0 0 0 30,9921455383301 -20,0373554229736 1,40461373329163
Аноним 22/06/17 Чтв 23:42:53 #8 №1010263 
>>1010261
> Вот пример данных:
Они один за одним идут? Без разделителя?
Аноним 22/06/17 Чтв 23:44:21 #9 №1010264 
>>1010263
без и без пробелов
Аноним 22/06/17 Чтв 23:44:52 #10 №1010265 
>>1010264
но это не строка, иначе буфер без проблем бы вывелся, 6 флоатов
Аноним 27/06/17 Втр 19:01:33 #11 №1012549 
>>1010226
типы тут не причем, но вместо &buffer надо buffer.
Аноним 27/06/17 Втр 19:04:03 #12 №1012553 
>>1010226
Кстати, на буфер можешь вообще забить. recv прямо в (char*)&OpenTrackPacket.

Аноним 27/06/17 Втр 19:05:23 #13 №1012555 
>>1010239
Ну и это. Есть описание протокола, может там вообще XML приходит
comments powered by Disqus