Кодило
 Аватар для r0fL
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685

Обмен объектами между клиентом и сервером

18.11.2011, 21:29. Показов 2302. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня есть несколько идей по разработке клиент-серверных проектов, но вот встает такая задача, чтобы клиент был многопоточным и каждый поток в любой момент времени мог отправить объект серверу и получить ответ либо запрос на получение объекта от сервера - как такое реализовать правильно?

Так как идея пока только в зародыше, есть вариант делать какой-либо стек запросов на стороне клиента, каждому запросу присваивать уникальный ID и по мере получения от сервера ответа искать в стеке нужный ответ на нужный запрос, эту операцию будет делать каждый поток на стороне клиента, ища нужный ответ.

Предыдущий мой проект был слегка неудачен в этом плане, обмен данными велся в одном потоке путем сериализации и делать приложение многозадачным было очень проблематично и неприятно, не хотелось бы наступать на те же грабли в будущем.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.11.2011, 21:29
Ответы с готовыми решениями:

Обмен данными между клиентом и сервером
Здравствуйте! Есть программа, в ней же происходят нужные мне действия (конвертация одной строки в другую). Я хочу эту часть (конвертацию)...

Общение между сервером и клиентом
Всем доброго времени суток. Суть вопроса заключается в том, что мне нужен универсальный и простой инструмент для того чтобы спаять 2...

Посредник между клиентом и сервером
Передо мной встала задача реализации программы посредника между клиентом и сервером. Суть в том чтобы подменить хосты клиента и заставить...

3
87 / 73 / 6
Регистрация: 11.09.2011
Сообщений: 118
18.11.2011, 22:51
Не очень понимаю, а зачем клиенту многопоточность? Мне кажется проще всего будет постоянно слушать сервер, как только приходит что-то - вызываем событие OnCommandReceived, например, в качестве EventArgs передаем саму команду и обрабатываем её, выполняя полученные от сервера инструкции.
0
Кодило
 Аватар для r0fL
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
18.11.2011, 23:16  [ТС]
Niades, она просто нужна, чтобы пользователь мог выполнять несколько различных операций, или, например, основное окно постоянно обновляет данные с сервера, а пользователь зашел в другое, второстепенное окно, где так же что-то делает и он должен это делать не мешая обновляться данным в первом окне, в общем, ситуации то найти не проблема, проблема продумать саму структуру такой работы.
0
87 / 73 / 6
Регистрация: 11.09.2011
Сообщений: 118
18.11.2011, 23:26
Цитата Сообщение от r0fL Посмотреть сообщение
Niades, она просто нужна, чтобы пользователь мог выполнять несколько различных операций, или, например, основное окно постоянно обновляет данные с сервера, а пользователь зашел в другое, второстепенное окно, где так же что-то делает и он должен это делать не мешая обновляться данным в первом окне, в общем, ситуации то найти не проблема, проблема продумать саму структуру такой работы.
Ну тогда как я уже сказал. Пишешь класс Client, делаешь в нем метод SendToServer(), например. Отправляешь данные в отдельном потоке через Thread.ThreadPool.QueueUserWorkItem(). А дальше получением ответа от сервера занимается отдельный поток, который при получении данных вызывает ивент, хэндлером этого события обрабатываешь данные, полученные от сервера.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.11.2011, 23:26
Помогаю со студенческими работами здесь

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

Передача данных между клиентом и сервером
Имеется многопоточный сервер, как лучше реализовать передачу данных между клиентом и сервером? Структуры будут самые разные: таблицы,...

Передача картинки между клиентом и сервером
Как передать сделанный скрин? Я так понял данные надо как-то преобразовать... using System; using System.Collections.Generic; using...

Robocraftgame.com - разбор пакетов: как шифровать\дешифровать пакеты между клиентом-сервером
Всем привет! Есть замечательная игра http://robocraftgame.com/ Хочу научиться шифровать\дешифровать пакеты между клиентом-сервером. ...

Как осуществить взаимодействие между клиентом и сервером, который подключается к базе данных
Нужно написать клиент и сервер. Сервер подключается к базе данных. НА сервере буду писать команды для работы с базой данных, на уровне...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru