Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача комманд между клиентом и сервером

4.9K
19 января 2009 года
efferson
57 / / 08.12.2005
Добрый вечер! :)

Нужно организовать протокол взаимодействия между клиентом и сервером. Клиенты при обращении к серверу должны иметь возможность:
1. Авторизовываться;
2. Получать список других подключенных клиентов;
3. Отправлять текстовые сообщения другим (конкретным) клиентам;
4. Отправлять бинарные файлы другим (конкретным) клиентам.

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

Отсюда вопрос: может кого-нибудь посоветовать какую-нибудь литературу/примеры по написанию протоколов программного уровня?

P.S.
В качестве среды реализации думаю выбрать C#, но в данном случае это не существенно.
4.9K
19 января 2009 года
efferson
57 / / 08.12.2005
Нашёл статью с описанием протокола ICQ - http://www.codenet.ru/progr/inet/icq/. В принципе, если убрать из протокола всё лишнее, вполне сойдёт под мои нужды :)
241
19 января 2009 года
Sanila_san
1.6K / / 07.06.2005
Могу ещё прислать доки по протоколу SMPP, может сгодится для общего развития. По большому счёту в протоколах прикладного уровня нет ничего принципиально сложного для понимания: вы описываете набор функций, потом из него выводите набор команд и способ кодирования. Можно словами естественного языка, можно байтами, можно числами - как угодно.

Кстати, можете в консоли подходящего джаббер-клиента посмотреть, как происходит подключение. Очень познавательно, да и протокол Jabber вам бы наверняка больше подошёл.
5
19 января 2009 года
hardcase
4.5K / / 09.08.2005
Гляньте здесь.
63
19 января 2009 года
Zorkus
2.6K / / 04.11.2006
Цитата:
1. Авторизовываться;
2. Получать список других подключенных клиентов;
3. Отправлять текстовые сообщения другим (конкретным) клиентам;
4. Отправлять бинарные файлы другим (конкретным) клиентам.


Некоторый матчинг есть с дву/одно-ранговыми пиринговыми сетями, имхо.
Тот же BitTorrent (DHT как опция) работает весьма похоже.
http://ru.wikipedia.org/wiki/BitTorrent
http://ru.wikipedia.org/wiki/DHT
http://ru.wikipedia.org/wiki/Kademlia
Может, будет чем-то полезно?

4.9K
21 февраля 2009 года
efferson
57 / / 08.12.2005
Всем спасибо за советы :)
В итоге решил проблему передачи команд путём реализации протокола XML-RPC. Учитывая богатство функционала .NET по части генерации/парсинга XML, реализация вышеобозначенного протокола (точнее той его части, что нужна для решения моей задачи) не вызывает особых проблем smile
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог