Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы, WCF
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
Заблокирован

Описание пакета данных

14.03.2016, 20:43. Показов 5330. Ответов 90
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как грамотно описать структуру пакетов данных для клиент-серверного приложения? Например для чата нужны примерно такие пакеты: пакет - регистрация (в нем имя и хэш пароля), пакет - авторизация (тоже самое в общем то), текстовое сообщение (тест и отправитель), список подключенных клиентов (просто массив строк). И плюс у каждого флаг типа сообщения (как например регистрация и авторизация). Так вот хочется как то красиво это все описать, возможно что то с наследованием или типа того...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.03.2016, 20:43
Ответы с готовыми решениями:

Возможно ли при импорте в модуль пакета подняться выше пакета?
Есть скрипты .py, лежащие на одном уровне(в одном каталоге) и есть пакет модулей, лежащий на том же самом уровне. Возможно ли...

Эмуляция пакета данных
Моя задача считать данные которое передает одно устройство другому по однопроводной шине. Что за протокол я не понял. С помощью таймера...

Мусор в данных пакета CAN
Привет. Есть устройство с процессором STM32f417 и двумя интерфейсами CAN. Интерфейс CAN резервированный, т.е. одни и те же данные...

90
Заблокирован
20.03.2016, 09:04  [ТС]
Студворк — интернет-сервис помощи студентам
insite2012, Такая проблема. Я добавил в сервер еще один интерфейс-контракт как раз описывающий callback и его реализацию, но когда я через ссылку добавил это в клиент то я его не увидел. Т.е. я вижу только контракт самого сервера, а callback который тоже описан с атрибутом ServiceContract не сгенерился. Может его надо в конфиг как то занести?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 09:11
Цитата Сообщение от Шарпист Посмотреть сообщение
добавил в сервер еще один интерфейс-контракт как раз описывающий callback и его реализацию
Реализация callback-а в службе не нужна. Только контракт обратного вызова.
В атрибуте ServiceContract контракта службы свойство CallbackContract установлено?
1
Заблокирован
20.03.2016, 09:29  [ТС]
insite2012, Я просто подумал что удобнее все классы в сервере прописать... Да забыл установить это свойство, сейчас стало видно интерфейс callback-а, но не его реализацию. Значит надо будет ее все таки в клиенте реализовывать?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 09:33
Цитата Сообщение от Шарпист Посмотреть сообщение
надо будет ее все таки в клиенте реализовывать?
Не просто надо, а требуется именно так и делать. Это же callback, служба просто вызывает его метод (через контракт обратного вызова), а выполняться он должен уже в клиенте (иначе зачем он нужен, вызвать логику службы из клиента мы можем и через основной контракт службы).
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
20.03.2016, 11:30
insite2012, А если мне надо 2 калбэка? Скажем один рассылает сообщения, а другой список клиентов онлайн (при каждом подключении / отключении клиента). Так можно?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 12:19
Цитата Сообщение от Dark Byte Посмотреть сообщение
Так можно?
Dark Byte, насколько я знаю, у каждого контракта службы может быть только один контракт обратного вызова. Но никто не мешает вам написать один контракт обратного вызова, потом второй (и унаследовать его от первого), а потом предоставить его контракту службы. Вариантов там много, надо пробовать.
Да и в контракте обратного вызова может быть много разных методов, так что и одним вполне можно обойтись.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
20.03.2016, 14:06
insite2012, Но ведь у функции будут другие параметры, как же тут наследовать?

Добавлено через 17 секунд
Цитата Сообщение от insite2012 Посмотреть сообщение
Да и в контракте обратного вызова может быть много разных методов, так что и одним вполне можно обойтись.
Каким например?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 14:17
Dark Byte, я не совсем понимаю, в чем у вас возникает сложность. Объясните.

Не по теме:

эх, мне бы ваши проблемы... :)

0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
20.03.2016, 14:24
insite2012, Ну как же, вот допустим тот первый калбэк как я уже сказал возникает когда кто то из клиентов пишет сообщение, он принимает в параметрах это сообщение, а второй калбэк принимает в параметрах список клиентов онлайн, если кто то заходит или выходит то генерируется событие и список обновляется. Но параметры то разные у этих двух функций. Как же я буду наследовать? Или мне их обе описывать в интерфейсе-контракте? Только какой в этом смысл? Просто когда я их буду реализовывать у меня тогда в каждом классе будет лишняя функция, наследуются же все функции описанные в интерфейсе.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 14:39
Dark Byte, это лишнее. Гораздо проще в клиенте через промежуток времени (например, по таймеру) запрашивать список остальных клиентов, кто подключен. Зачем усложнять себе задачу?
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
20.03.2016, 15:25
insite2012, Ну в принципе проще, но не факт что правильнее... В конце концов с тем же успехом можно и сообщения запрашивать функцией асинхронной, по типу как у сокета Receive.

Добавлено через 33 минуты
insite2012, Все таки если совсем правильно вы знаете как это сделать? Не таймером?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 16:18
Цитата Сообщение от Dark Byte Посмотреть сообщение
Все таки если совсем правильно вы знаете как это сделать? Не таймером?
Да можно и так, как вы хотите. Несколько методов в контракте обратного вызова или один. Могу набросать пример, если вам что-то непонятно.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
20.03.2016, 16:38
Цитата Сообщение от insite2012 Посмотреть сообщение
Да можно и так, как вы хотите. Несколько методов в контракте обратного вызова или один. Могу набросать пример, если вам что-то непонятно.
Мне не понятно что я буду делать при наследовании с лишними функциями из интерфейса!
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 16:46
Цитата Сообщение от Dark Byte Посмотреть сообщение
не понятно что я буду делать при наследовании с лишними функциями из интерфейса!
Да что же они вам так дались. Я же сказал, что вполне можно обойтись и одним контрактом обратного вызова.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
20.03.2016, 17:08
Цитата Сообщение от insite2012 Посмотреть сообщение
Да что же они вам так дались. Я же сказал, что вполне можно обойтись и одним контрактом обратного вызова.
А список клиентов? По таймеру? Вы же сами сказали что можно так как я хочу, а мне бы хотелось все таки если возможно обойтись без таймера. Мне это кажется как то не правильным... Ну как бы в реальных проектах так не делают, пусть лучше будет чуть сложнее, но уж все чин чином по событию обновление, а не по таймеру.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 17:10
Цитата Сообщение от Dark Byte Посмотреть сообщение
А список клиентов? По таймеру?
Нет.
Цитата Сообщение от Dark Byte Посмотреть сообщение
Вы же сами сказали что можно так как я хочу
Можно. Если чуть подождете, закончу пример и покажу. Мне проще кодом показать, чем рассказывать.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 18:20
Цитата Сообщение от Dark Byte Посмотреть сообщение
все чин чином по событию обновление, а не по таймеру.
Вот вам пример простенького чата (вам ведь именно он нужен, ну или что-то похожее).
Сначала запустите сервер, ну а потом клиентов, сколько надо.
Вложения
Тип файла: rar DarkByte.rar (96.8 Кб, 2 просмотров)
1
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
20.03.2016, 18:49
insite2012, Ну вот, а теперь вы все за меня написали. Ладно все равно спасибо, постараюсь не читать лишнего, так сказать чтобы не портить удовольствие от написания самому.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.03.2016, 18:51
Цитата Сообщение от Dark Byte Посмотреть сообщение
теперь вы все за меня написали.
Я выше уже сказал, что мне так проще-написать код, чем пытаться рассказать на словах.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
21.03.2016, 12:03
insite2012, А не подскажете еще как узнать IP подключившегося клиента? При работе с сокетами это было легко... А тут получается что единственный идентификатор клиента это ссылка на калбэк-объект.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2016, 12:03

Прием по USART пакета данных
Добрый день! Подскажите как по USART принять следующий пакет данных: C3C312345678910C3C3.... Мне нужно вытащить 4 байта после C3C3,...

Получение данных из TCP пакета
Вот код: #include <conio.h> #include <stdio.h> #include <winsock2.h> #define MAX_PACKET_SIZE 0x10000 #define SIO_RCVALL ...

Запрет на передачу пакета данных
Есть пакет данных, при отправлении которого на пк, падает определенная программа. Нужен firewall, который бы блокировал этот пакет и не...

(WinSock) Условие прихода пакета данных
Допустим, я хочу написать чат на WinSock. Мне нужно, чтобы при приходе пакета специально отведенный буфер заполнялся данными, после чего...

Передача пакета данных TCP через интернет
Доброе время суток!:) Я студент, пишу дипломную работу по передачи данных используя стек протоколов TCP/IP. У меня получилось...


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
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
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru