Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12

Баг .Net Core? TcpClient BinaryWriter BinaryReader

28.03.2019, 11:24. Показов 958. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане. Сделал на с++ библиотеку для прикладной задачи. Решил для неё сделать сетевой интерфейс. Очень долго не мог понять откуда тормоза , в итоге нашёл

Подключаюсь из шарпа к библиотеке
C#
1
2
3
4
5
6
 using (TcpClient clien = new TcpClient())
{
    clien.Connect(IPAddress.Parse("127.0.0.1"), 12345);
    BinaryWriter bw = new BinaryWriter(clien.GetStream());
    BinaryReader br = new BinaryReader(clien.GetStream());
...
этот код;
C#
1
2
bw.Write(new byte[4],0,4);
br.ReadInt32();
работает с такой же скоростью как и этот:

C#
1
2
bw.Write(123);
br.ReadInt32();
а вот этот:

C#
1
2
bw.Write(new byte[8],0,8);
br.ReadInt32();
работает в сотни раз быстрее чем:

C#
1
2
3
bw.Write(123);
bw.Write(123);
br.ReadInt32();
Как такое возможно?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.03.2019, 11:24
Ответы с готовыми решениями:

TcpListener/TcpClient BinaryReader/BinaryWriter проблема с файлами
Доброго времени суток. Появилась проблема, а конкретнее: Если я передаю файл от сервера до клиента (около 50кб)...

Работа с потоками, ввод (использование BinaryReader/BinaryWriter)
Всем доброго времени суток. Дали прогу для зачёта в колледже. Сижу над ней 5 часов, мучаю свой тупой мозг. И так, задание таково. ...

Применение binarywriter/binaryreader
допустим создаю структуру по заданию где нужно создать файл, содержащий записи о студентах из 3 групп (не менее 15). сама структуруа ...

4
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
28.03.2019, 12:08
Цитата Сообщение от Van111 Посмотреть сообщение
Как такое возможно?
Проверьте значение свойства AutoFlush.
Если оно true, то каждый вызов Write отсылает данные в сеть.
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
28.03.2019, 16:41  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Проверьте значение свойства AutoFlush.
Если оно true, то каждый вызов Write отсылает данные в сеть.
Но даже если каждый вызов отсылает данные, два вызова должны же быть примерно в два раза медленнее одного, но не как в сотни раз
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
28.03.2019, 19:27
Van111, всяко может быть.
Но начать, конечно же, надо было с другого: как проводился замер времени?
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
31.03.2019, 21:48  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Но начать, конечно же, надо было с другого: как проводился замер времени?
нажал ф5 на одном варианте получил результат пару сотен миллисекунд. Запустил второй вариант, подождал секунд 10, нажимаю паузу а там и 10 процентов не передалось.

Причина явна в том что я вызываю функцию Write несколько раз подряд для цепочки BinaryWriter - NetworkStream.

нашёл решение - обернуть NetworkStream в BufferedStream а его уже в BinaryWriter. После всех Write вызвать Flush.
Цитата Сообщение от kolorotur Посмотреть сообщение
Проверьте значение свойства AutoFlush.
Для BinaryWriter нет autoFlush
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2019, 21:48
Помогаю со студенческими работами здесь

Нужно описание BinaryReader BinaryWriter и многого другого
Здравствуйте, дорогие форумчане) Скиньте линки пожалуйста, на как можно больше информации о : struct List<T> ...

Где находят свое применение BinaryWriter и BinaryReader?
Интересно, как на практике используются эти потоки для хранения информации? Просто, насколько я понял при чтении нужно строго указывать тип...

Работа со структурированным файлом c помощью класса BinaryWriter, BinaryReader
Добрый вечер всем. Имеется такая задача. Разработать приложение, выполняющее следующие функции: • Запись внесенной в таблицу информации...

Переписать задачу, используя StreamReader и StreamWriter, вместо BinaryWriter и BinaryReader
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace...

BinaryReader C# .NET 3.5
здравствуйте. может кто подскажет... есть файл, формировался с Pascal, хранит записи, структура файла извесна. смущает одно: в Pascal...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru