|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
|||||||||||
Передача массива байт как поля объекта01.06.2014, 17:34. Показов 5149. Ответов 44
Метки нет (Все метки)
Добрый день. Есть класс-оболочка БД "Data".
Быть может я некорректно передаю или записываю?
0
|
|||||||||||
| 01.06.2014, 17:34 | |
|
Ответы с готовыми решениями:
44
Вычесть из одного массива байт другой массив байт Передача поля объекта по ссылке передача массива байт, протокл |
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
|
| 03.06.2014, 01:48 [ТС] | |
|
Отправляя объект с любыми проинициализированными полями (кроме массива байт) я получаю его цельным и без проблем (bytesSent, bytesRec, размерности и последние байты, xml полностью совпадают).
Добавлено через 5 минут Попробую сейчас просто строки в массив писать и передавать.
0
|
|
|
Master of Orion
|
|
| 03.06.2014, 01:54 | |
|
NetFR, после XML серилаизации вы получаете просто строку. Инициализированные поля или нет - влияет только на состав строки, на наличие некоторых символов и т.д. Какая разница - передаем строку "hello", "world" или "<root><Element key="why" value="because" /> </root>"?
1
|
|
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
||||||
| 03.06.2014, 02:43 [ТС] | ||||||
|
Строку в виде массива передало без проблем. Судя по всему до определенного размера передача выполняется корректно.
Просто я уже понятия не имею в чем может быть проблема. Это жест отчаяния ![]()
Картинки так же передает без проблем, но приближаясь к размеру в 1 кб и более получаем ошибку. Добавлено через 32 минуты Хотя чушь спорол. Отправлял я ранее и 200+ кб, а получал порядка 30, так что не в размере дело судя по всему.
0
|
||||||
|
C#,XNA Game Studio
36 / 36 / 8
Регистрация: 26.04.2014
Сообщений: 195
|
|
| 03.06.2014, 08:34 | |
|
попробуйте http://metanit.com/sharp/tutorial/6.2.php бинарную сериализацию/десериализацию,
1
|
|
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
|
| 03.06.2014, 13:40 [ТС] | |
|
Я собственно и начинал с обычной бинарки, но, получив множество ошибок вида "Не удалось загрузить сборку" перешел на Xml-сериализацию. Теперь могу уверенно сказать причину той ошибки - данные приходили опять же лишь частично. Попробую сейчас json, но почти уверен в том же результате, проблема-то в передаче, а не сериализации.
Наблюдение: я считываю IP и порт с пользователя. IP я конвертирую как Ip = IPAddress.Parse(string), порт - интовское число. Добавлено через 5 минут Так вот, когда я запустил сервер, скажем, по адресу 192.168.100.101 на 11000-м порту, подключение вижу как 192.168.100.101 и рандомный порт, аля подключен клиент 192.168.100.107:5445 и т.д. Это ведь нормально? Какая разница с какого порта пришел запрос на соединение.
0
|
|
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
||||||
| 03.06.2014, 14:50 [ТС] | ||||||
0
|
||||||
|
C#,XNA Game Studio
36 / 36 / 8
Регистрация: 26.04.2014
Сообщений: 195
|
|
| 03.06.2014, 14:58 | |
|
NetFR, мне кажется вам нужно использоват ьасинхронные методы загрузки с коллбэками в методы где и будут данные сериализованы десериализованы
1
|
|
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
|||
| 03.06.2014, 15:23 [ТС] | |||
0
|
|||
|
Master of Orion
|
|
| 03.06.2014, 15:45 | |
|
NetFR, еще раз, почему бы перед началом передачи не передать интовое значение - сколько байт отсылаем? Ждем 4 байта, когда 4 байта пришло, расшифровываем их, получаем число - длину в байтах, после этого ждем столько байт на входе. Пока не дождемся, не пытаемся ничего делать. Когда получили - расшифровали, получили исходное сообщение. Profit.
1
|
|
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
|
| 03.06.2014, 16:24 [ТС] | |
|
Psilon, я так и делал. Задавал размерность входящим интовским числом, ожидал передачи. По итогу длины массивов совпадают, вот только получено в разы меньше, нежели отправлено. Или вы имеете в виду добавить условие, пока кол-во полученных байт не совпадет с интовским числом? Можно попробовать.
0
|
|
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
|||||||||||
| 03.06.2014, 17:01 [ТС] | |||||||||||
|
Хахахаха
На обычный if плевало.
0
|
|||||||||||
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
|
| 03.06.2014, 17:08 [ТС] | |
|
Можно было бы, конечно, так и оставить, но все же
Вдруг следующий раз понадобится тысяча попыток? Десять? Сто? Так я до конца времен ждать буду. Кстати, последняя строка означает, что данные успешно десериализовались.
0
|
|
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
||||||||||||||||
| 03.06.2014, 18:59 [ТС] | ||||||||||||||||
|
Как оказалось, факт успешной передачи еще не означает успешной десериализации. Два абсолютно идентичных xml, вот только длина массива с картиной на стороне сервера равна 0. Никаких ошибок не бьет, просто делает ImageBytes пустым полем. Отличное решение-таки.
0
|
||||||||||||||||
|
46 / 46 / 32
Регистрация: 10.05.2013
Сообщений: 180
|
|
| 03.06.2014, 19:58 [ТС] | |
|
Забавно
Но как же тогда?
0
|
|
| 03.06.2014, 19:58 | |
|
Как заставить программу принимать цепочку байт из оперативной памяти, в виде массива байт ? Передача массива через write: Передается только 8 байт
С++ передача в поле объекта массива Передача объекта как аргумент в метод Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|