|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
||||||
Socket.BeginConnect и чтение/запись данных - проверка кода13.09.2012, 13:42. Показов 9733. Ответов 71
Метки нет (Все метки)
Данные поступают я их вывожу в контролы.Также хотелось бы реализовать запись данных в файл и одновременное чтение в другом месте.как мне это реализовать без "Задержки данных" ибо мы используем асинхронный коннект. Также хотелось бы спросить у ГУРУ у меня "правильная логика" полученния данных вывод и всего остального? Добавлено через 40 минут И ещё если убрать комментарии возле Chart'a то видно не вооруженным глазом что данные "запаздывают" в Textbox'e я вижу только один путь исправления. "оптимизировать" Chart т.е. выводить только текущие значения(пакеты который только что пришли и прошлый пакет вырисовывать, а не все что бы график не выравнивался и не "скручивался"), но даже он не даст "точных" текущих значений на клиете(они не будут совпадать на сервере) как вывесте текущее значения в Chart??или как вылечить болезнь с "запаздыванием" данных если она вообще решается на моё примере(т.к. используем асинхронный коннект)
0
|
||||||
| 13.09.2012, 13:42 | |
|
Ответы с готовыми решениями:
71
как передать начальные данные в Socket.BeginConnect Реализовать чтение данных ИБП Ippon через serial socket Чтение файла, чтение названия папки где находится файл, запись данных на PHP |
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
|
| 13.09.2012, 15:56 [ТС] | |
|
Глупый вопрос.как мне сделать отправку данных когда ещё идёт приём..т.е. будет происходить постоянно получение данных и одновременно я могу посылать данные на сервер..я сделал в лоб на кнопку повесил bool flag = !flag; а в клиенте if(flag) SendData(...);?
0
|
|
| 13.09.2012, 16:04 | |
|
И правда глупый, ты не сможешь что-то оправить в сокет, пока ожидаешь приема или принимаешь данные, выпадет ошибка. По крайне мере я не знаю таких способов. НО можно попробовать использовать неблокирующие сокеты. И посылать очередь из команд. Но опять таки, смотря что ты подразумеваешь под приемом - ожидание приема, или процесс получения данных?
0
|
|
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
||||||
| 13.09.2012, 16:13 [ТС] | ||||||
|
Стало запутанно..Не понял до конца смысл класса событий и класса клиента ..если это сводится к асинхронному коннекту..почему бы не воспользоваться простым BeginConnect с Invok'ом только проблема встанет с Chart'ами а их как минимум 2..
я побывал методом в лоб как я и говорил bool flag повесил на кнопку..а в
И главное что я отправляю данные..но я как то глупо это делаю чз условие и чз флаг "ТОПОРным" методом.а как сделать правильнее?
0
|
||||||
| 13.09.2012, 16:30 | ||||||
|
Как ты пошлет данные , если ты в данный момент их принимаешь? Я просто не знаю о такой фичи в сокетах) В общем пример не правильный, работать не будет.
вот тебе пример отчасти правильного асинхронного клиента: Асинхронный клиент
А правльней будет вызывать методы Receive и Send с формы. И не нежны никакие флаги. Но я повторюсь ещё раз, я не знаю можно ли посылать данные по сокету по он их принмиает, я склоняюсь к тому что нельзя.
1
|
||||||
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
|
| 13.09.2012, 16:35 [ТС] | |
|
да вот именно что всё работает глупым методом в лоб всё работает данные отсылаются и сервер их принимает..мне кажется потому что асинхронный коннект другой магии тут нету))..
Добавлено через 1 минуту да кстати по поводу примера я его прочитал и начал делать свой клиент..т.к тот из за разрыва соединения не работало ничего=(
0
|
|
| 13.09.2012, 16:36 | |
|
Ну если работает глупым методом, то бери мой пример и добавляй туда захардкоренную на бесконечный цикл прием данных. А на форму выведи кнопку для отправки данных. и все, в итоге ты постоянно получаешь данные от сервера и при нажатии на кнопку их отправляешь.
0
|
|
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
|
| 13.09.2012, 16:37 [ТС] | |
|
Да и ещё если делать Chart1.Invoke(new Action(() => {Chart1.Series[0].......}));
Данные идут с "задержкой"
0
|
|
| 13.09.2012, 16:37 | |
|
videoLoL, у тебя очень грубые ошики в твоей коде, одна из них - это то, что ты не делаешь завершение асинхронного коннекта, ты должен обязательно вызвать EndConncet в CallBack'е, уначе у тебя не завершится работа.
0
|
|
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
||||||
| 13.09.2012, 16:39 [ТС] | ||||||
|
Вопрос уже стоит не как организован клиент..я знаю что он у меня убогий=(..но как мне в Chart1 выводить график без задержки вывода данных в TextBox???
Добавлено через 26 секунд я делаю
0
|
||||||
| 13.09.2012, 16:42 | ||
|
На счет задержи, не знаю, тести прогу, меняй способы. С задержаками никогда не сталкивался, всегда все утраивало. Может народ с форму че и подскажет)
Добавлено через 1 минуту Добавлено через 1 минуту Как из вариантов, перепиши клиента, быть может из за его "убогости" происходят задержки, тут спорный вопрос.
0
|
||
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
|
| 13.09.2012, 16:48 [ТС] | |
|
да вот именно из за этого асинхронного коннекта если я данные вывожу в 1 TextBox чз Invoke то всё хорошо видно как микросекунды летят.(0-999) а когда подключаю Chart1 чз Invoke то тут начинается беда в TextBox'e видно как пролистываются микросекунды даже видно как пролистываются доли микросекунд а это значит что данные выводится с задержкой в связи с тем что Chart1 Отрисовывает график..а если его не отчищать то график будет сворачиватся и выравниватся и тогда аще коллапс..данные в Textbox'е с ума сходят=( то данные другие то все 0 то другие и т.д. как тут поступить?
Добавлено через 1 минуту асинрохнный поток на вывод?или что Thread?ThreadPool (кстати я так и не пользовался им что это? можете объяснить пожалуйста?) или ещё что нибудь..или у меня концепция в корень не верная..если эта не верная то даже не знаю как уже программу переделать=( Добавлено через 3 минуты Предлагаю вернутся к "баранам" и всё с чистого листа..как вы видите сделать этот проект?.. Синхронный коннект не позволит менять значения на форме т.к. работает в 1 поток. в Асинхронном при подключение Chart чз Invoke и TextBox чз Invoke (кстати данные одни и теже) то данные на текст боксе выводятся с задержкой как и в Chart(в связи с тем что Chart отрисовывает данные) какой выход?
0
|
|
| 13.09.2012, 16:49 | ||
|
videoLoL, так отрисовка графики завист от мощности твоего компа))) тем более если ты рисуешь в микросекундах. Тут уже сама прога лагать начинает, как вариант увеличить интервал перерисовки, дабы снизить нагрузку.
1
|
||
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
|
| 13.09.2012, 16:51 [ТС] | |
|
нет это был мой вопрос что мне сделать с этим Chart'ом сделать поток на вывод?а асинхронный это я печатал задумался.... вообщем не берите в голову
0
|
|
| 13.09.2012, 16:52 | ||
|
Начал естественно с синхронного способами, у меня что получалось что-то нет. Потом забил переписал все на асинхронный,там вроде пошло, на нем и остановился. Писал дня 4, в итоге получились одинаковые серваки, с разницей только в синхронности. В вашей ситуации. ПЕРВОЕ, видимо вам очень не хочется это делать, почитать мат часть по асинхронным сокетам и переписать все как должно быть, и только после этого смотреть почему зависает, как зависает и искать эти ошибки.
1
|
||
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
|
| 13.09.2012, 16:52 [ТС] | |
|
эм интонацию не передать текстом..смысл понял попробую завтра благодарю за помощь и разъяснения ...если что тема ещё не закрыта)..завтра отпишусь)
0
|
|
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
|
| 13.09.2012, 16:54 [ТС] | |
|
Первое вы имели ввиду - Асинхронный сокет на клиенте?
0
|
|
|
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
|
|
| 14.09.2012, 06:23 [ТС] | |
|
Не понимаю как сделать одновременную отправку сообщений когда ещё идёт приём данных..
что вешать на кнопку?я делаю топорным методом вешаю на событие bool flag = !flag;как бы вы это сделали?
0
|
|
| 14.09.2012, 09:37 | |
|
videoLoL, однако тяжело судить, можно или нельзя сделать так то так то, без исходников сервера. Код должен быть следующий:
Для приема делаешь бесконечный цикл на прием: while(stopper) Receive(); Для отправки в событии button_click пишешь: Send("msg");
0
|
|
| 14.09.2012, 09:37 | |
|
Чтение/запись hex кода файла Проверка прав доступа (чтение/запись) в директории Open/Save Dialog. Сериализация данных. Запись/чтение данных объектов в/из потока.
Чтение и запись данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|