Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
 Аватар для ViterAlex
8953 / 4865 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246

Как организовать непрерывный обмен между сокетами без переподключения?

05.01.2017, 12:43. Показов 6677. Ответов 22

Студворк — интернет-сервис помощи студентам
Есть примеры синхронных клиента и сервера с использованием сокетов. А мне нужно организовать обмен данных по таймеру. Объём данных за цикл порядка 100 байт, таймер от 25 мс до 1 с. Если идти в лоб и просто в цикле создавать клиент, подключаться, отправлять, читать, отключаться, то очень скоро буфер забивается и соединение обрывается принудительно.
Интересует пока что лишь синхронный вариант, как более простой в отладке.
Как представляется мне процесс. Сервер слушает порт. Клиент отправляет ему сообщение. Сервер отвечает и ждёт следующее сообщение без разрыва связи.
Возможно, я не верно представляю себе механизм работы клиент-сервера. Буду рад разъяснениям.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2017, 12:43
Ответы с готовыми решениями:

Обмен сообщениями между сокетами
Есть два приложение одно - клиент, второе - сервер. using System; using System.Text; using System.Net; using System.Net.Sockets;...

Как организовать кроссплатформенный обмен данных между процессами?
Добрый день всем посетившим! Мне нужно передать буфер char-ов из callback-функции cUrl-а в основную программу. Причём передавать...

Обмен данными между проектами, как правильно организовать
Доброго времени суток. Есть два проекта в solution. Первый является сервером и собирает информацию с внешних устройств в некий массив A. ...

22
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
09.01.2017, 12:02
Студворк — интернет-сервис помощи студентам
Storm23, т.е. вы предлагаете слать длину пакета который собираетесь отправить отдельным пакетом? ).
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10428 / 5158 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
09.01.2017, 12:07
Цитата Сообщение от aquaMakc Посмотреть сообщение
т.е. вы предлагаете слать длину пакета который собираетесь отправить отдельным пакетом? ).
Если вы имеете ввиду TCP пакеты - то нет, можно и в одном пакете с основными данными.
Вот здесь пример что я имею ввиду Описание пакета данных (тот код не идеальный тоже, но для примера сойдет)
Там класс сериализуется в MemoryStream, затем получается массив байт. Затем клиент отправляет длину этого массива в 4 байтах. А затем передает собственно сам массив. Как оно там разобъется по TCP пакетам внутри - не важно.

PS Кстати если поверх этого дела прилепить GZipStream (а я так обычно и делаю), то и длину массива слать не придется, GZip сам шлет размер своего тела.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
09.01.2017, 12:50
Цитата Сообщение от Storm23 Посмотреть сообщение
Если вы имеете ввиду TCP пакеты - то нет, можно и в одном пакете с основными данными.
т.е. сделать обёртку над данными. К сожалению - это далеко не всегда возможно. В частности, если вы работаете с уже готовыми устройствами или программами, где никаких надстроек над протоколом обмена производитель делать не будет по определению. Если же реализуется свой сервер со своим клиентом поле длинны можно сразу предусмотреть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2017, 12:50

Как организовать обмен между двумя контроллерами ATmega
Уважаемые пользователи форума, подскажите пожалуйста как можно организовать обмен, возможно по 485 интерфейсу, между двумя ATmel...

Как организовать обмен данными между приложениями по интернету
Здравствуйте! Подскажите пожалуйста, каким образом можно организовать обмен данными между приложениями по интернету? Какие методы...

Как организовать обмен переменными между Form и Program
Здравствуйте, может быть вопрос будет несколько сумбурным, или вообще это невыполнимо, т.к. я ещё новичок... Я сейчас пытаюсь разобраться...

Как организовать обмен данными между двумя контроллерами
Заранее извиняюсь за нубский вопрос. Есть два микроконтроллера, шина данных (порты A, B), линия запроса прерывания от ведущего...

Как организовать обмен данными между двумя разными программами?
Как организовать обмен данными между двумя разными программами? Интересует именно схема этого процесса. Предполагается обмен данными в...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru