|
0 / 0 / 0
Регистрация: 19.09.2019
Сообщений: 14
|
||||||||||||||||
WPF Лишние символы при получении ответа Socket'a19.09.2019, 09:13. Показов 3001. Ответов 9
Добрый день. Пытаюсь найди слово "tech" в ответе сокета, в консоль выводиться "true", а if не срабатывает.
Код окна:
0
|
||||||||||||||||
| 19.09.2019, 09:13 | |
|
Ответы с готовыми решениями:
9
Proxy Server: При получении ответа появляется ошибка
|
|
Модератор
|
|||||||
| 19.09.2019, 15:46 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 19.09.2019
Сообщений: 14
|
||
| 20.09.2019, 09:31 [ТС] | ||
|
Contains: True Answer: tech??????????????????? Но все ровно лишние знаки есть, но консоль их не может отобразить. Как от них избавиться без Replace?
0
|
||
|
Модератор
|
||||||||||||||||||||||
| 20.09.2019, 10:04 | ||||||||||||||||||||||
Сообщение было отмечено VitiaKotik как решение
РешениеТам возвращается вам сообщение в строке
А какой размер вы принимаете в MainClass?
Решение. Самое лучшее это определять реальную длину полученного сообщения и превращать в строку только её. Как это сделать. Я не знаю. Смотрите параметры, значения свойств eventArgsВариант похуже. После получения потока найти в буфере первый ноль и по нему определить размер полученного сообщения.
Вариант может не работать. Я не смотрел кодировку UTF-8. Возможно надо проверять не на 1 нулевой байт, а два нулевых соседних. Но такую проверку надо делать в цикле перед return.
1
|
||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 19.09.2019
Сообщений: 14
|
|
| 20.09.2019, 10:13 [ТС] | |
|
Спасибо вам, теперь чистый ответ приходит!
0
|
|
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
||
| 20.09.2019, 16:09 | ||
|
- синхронизирующий байт - заголовок - размер данных - данные - crc Разумеется длина всех параметров, кроме данных - фиксирована
0
|
||
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
|
| 21.09.2019, 09:09 | |
|
0
|
|
|
Модератор
|
||
| 21.09.2019, 10:54 | ||
|
Пока потребности не было осваивать сокеты. Но по идее из сокета получают сообщения через поток. Дефолтного способа узнать длину потока, сообщения нет? Надо обязательно передавать длину данных как часть данных?
0
|
||
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
||
| 21.09.2019, 11:47 | ||
Сообщение было отмечено Элд Хасп как решение
Решениеhttps://docs.microsoft.com/en-... _Available Но оно показывает сколько данных доступно для чтения. Если с сетью все в порядке то можно предположить что если данных больше нет - то и пакет закончился. Раньше я так и делал. Но на него нельзя полагаться. Можно посылать признак конца пакета, что то вроде последовательности 0-255-0. Но тоже такой себе вариант. Можно заранее обговорить длину пакета. Но это вообще шаткая конструкция. Поэтому стоит пользоваться самописным протоколом который я описал выше - это самый правильный и надежный вариант. Добавлено через 6 минут Для изображений можно заранее брать размер буфера с запасом, стандартные средства которые преобразуют последовательность байт в картинку сами с лишними нулями справляются. Из стандартных инструментов еще есть бинарные серилизаторы, которые пишут прямо в networkstream, а на другой стороне он же их и дешифрует. Но они внутри используют точно такой же протокол описанный выше. Добавлено через 1 минуту Ну и серилизаторы не получится использовать если сервер и клиент написаны на разных языках.
1
|
||
| 21.09.2019, 11:47 | |
|
Помогаю со студенческими работами здесь
10
Получить один элемент из многомерного массива при получении ответа от сервера При получении из ajax-a ответа, в него поместить все присланное содержимое с заменой Office 2013 / добавляет междустрочные интервалы в оригинальный текст при получении ответа При получении текста из буфера обмена не распознаются русские символы Знаки "?" вместо кириллицы, при получении ответа на sql запрос к mdf базе данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|