Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 24

Сокеты: Ошибка при передаче данных от клиента к серверу

05.11.2015, 01:25. Показов 5248. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, уже месяц мучаюсь с этим клиент-сервером! Возникает ошибка в многопоточном серверном приложении - клиент принимает данные быстрее, чем их отправляет сервер. Не понимаю, как такое может быть, и откуда он их берет.

Передача между клиентом-сервером организована через посредников. Клиент запрашивает у сервера список файла и выбирает файл. Сервер отправляет своему посреднику имя файла, который выбрал клиент (до этого все нормально работает), посредник клиента соединяется с посредником сервера, начинается передача данных между посредниками. При этом посредник клиента успевает передать самому клиенту сколько частей файла он получил (чтобы заполнить progress bar клиента). Передавать файл по 5Мбайт. Вот такое задание дали(

Организовано все через синхронные сокеты TCP, многопоточность - обычные нити (в асинхронных сокетах совсем не разбираюсь).

Служебная информация между посредниками передается прекрасно (имя файла, количество частей). Также нормально передаются маленькие файлы. Но с большими беда - сервер передает, например, 5 Мбайт (1 часть), а клиент откуда-то уже взял 50 Мбайт мусора! В результате файл приходит битый и выползает исключение. Ладно бы так все время было - раз в десять раз файл может дойти совершенно неповрежденным. Уже и время сна нити увеличивал (на стороне посредника сервера - вдруг посредник клиента не успевает принимать данные), на один раз может помочь, потом запрашивает все большее время сна. Ставил и задержку на стороне посредника, то же самое. Отключал пересылку данных клиенту (одна строчка кода посредника клиента получала данные от посредника сервера, другая посылала просто число клиенту, чтобы тот в прогресс бар отобразил). В общем, ничего не помогает. Облазил весь Интернет, тоже не нашел ничего - либо выходят ошибки, что клиенты не получают данные вообще, либо что не успевают, а у меня - зараза - наоборот слишком быстро откуда-то принимает.

Может кто-нибудь знает в чем дело? Помогите!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2015, 01:25
Ответы с готовыми решениями:

Ошибка при сериализации от клиента серверу
Передаём данные между сервером и клиентом, при первой сериализации от клиента к серверу - всё гладко, а обратно выбивает ошибку! Самое...

При подключении клиента к серверу, подключается еще один клиент (фантом) завязанный на этого же клиента
Проблема появляется раз через раз с первого подключения клиентов, но после третьего и далее - всегда. В общем запускаю сервер, подключаю...

Ошибка при передаче данных в GridView
Среда: WPF Ошибка: Произошла ошибка базового поставщика в Open. Код: private void Window_Loaded(object sender,...

20
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 24
07.11.2015, 17:30  [ТС]
Студворк — интернет-сервис помощи студентам
aquaMakc, спасибо.
Да я тоже думаю, зачем вообще эти посредники, но по заданию требуется их использовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2015, 17:30

При подключении второго клиента к серверу возникает ошибка "IAsyncResult не был получен"
Всем привет, у меня проблема с асинхронными сокетами. Суть: Пишу простенький чат, написал сервер и клиент. С 1 клиентом работает без...

Ошибка при передаче данных в клиент-серверном приложении
Здравствуйте, вот код клиент-серверного приложения: Клиент: private void button1_Click(object sender, EventArgs e) { ...

Реализация сервер - клиенты через Сокеты. Размер буфера при передаче списков
Доброго времени суток. Пишу приложение по ведению заказов. Столкнулся с проблемой. Есть сервер и множество клиентов. На сервере...

Подобрать разделитель подстрок в одной строке при передаче пакета серверу
Клиент будет серверу слать связку логин-пароль по namedPipe кучкой байтиков. Я их считываю и перевожу в String. Беда в том что самое...

Неправильная передача данных от клиента серверу
Пишу программу на клиент-серверной архитектуре. Нужно из клиента передать данные на сервер, а сервер должен их принять. Отправляю...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru