|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.01.2010, 00:36 | #1 |
Пользователь
Регистрация: 20.09.2009
Сообщений: 17
|
протокол для мессенджера.
пишу инстант-мессенджер простенький,
ну там прием отправка сообщений,пока без файлов, смайлов и всяких статусов. и вот встала задача написать протокол. решила реализовать его в виде двух классов данные и сам протокол у которого будет как бы хиддер и тело, состоящее из объекта класса Data застряла на методе createPacket, прям ступор... т.е. лучше енум этот привести в свитче в самом методе или??? и вот еще статические поля можно же только в статических методах вызывать, как бы мне тогда ID пакета запихнуть в криейт. вобщем требуются как воздух ваши идеи и советы, а я уж их как-нибудь пропишу. и вот еще один вопрос, а в этом протоколе реально ли с обычными данными работать или их надо как-то в бинарном виде??? айнидхелп. з.ы. в идеале, ну по кр мере как я представляю себе все это дело, у меня будет еще класс отдельный обработчик событий, класс обработчик сообщений который будет использовать протокол, ну и классы ресиверы и сендеры. Код:
Код:
|
04.01.2010, 10:38 | #2 |
Пользователь
Регистрация: 20.09.2009
Сообщений: 17
|
откажите))
а что вы хотите увидеть в моем коде если я только начала писать протокол и не совсем понимаю как это делать. |
04.01.2010, 12:21 | #3 |
Пользователь
Регистрация: 20.09.2009
Сообщений: 17
|
это программа учебная да, но она не универовская. можно так сказать, для себя разбираюсь в большей степени.
опыта да, нет. я занимаюсь си++ месяца три от силы, ну четвертый пошел. т.е. вы раздаете советы только опытным программистам?)) ну и на том спасибо. |
04.01.2010, 12:57 | #4 | ||
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Протокол в исконном значении - это способ связи между разными уровнями приложений.
Написать низкоуровневый протокол - имхо, вам такое не нужно. Вам просто нужно создать определенные правила формирования пакетов, чтобы вам было удобно их парсить на стороне клиента и сервера. Для начала определите для себя типы пакетов. Например: DATA_PACKET - пакет с данными типа сообщения и прочее SIZE_PACKET - служебный пакет, который приходит перед пакетом с данными, чтобы обозначить его размер (ну если пакет будет большой) LOGIN_PACKET - пакет входа в сеть. Аналогично логину сделайте LOGOUT_PACKET Это примерный набор. Какие пакеты вам нужны - решать вам. Шаг следующий Определите структуру пакета. Структура должна быть удобной для парсинга. То есть, чтобы на разбор пакета не уходило много времени. Далее описываете класс пакета, если у разных пакетов разная структура - наследуете от базового класса PACKET нужные данные и получаете все разнообразие пакетов, которое вам нужно. Цитата:
Выглядеть это будет примерно так Код:
Цитата:
Если будут вопросы по сокетам и мультиплексированию - пишите мне в ЛС, я все объясню. Удачи. |
||
04.01.2010, 20:01 | #5 |
Пользователь
Регистрация: 20.09.2009
Сообщений: 17
|
вот что теперь получилось на выходе (почти на выходе)
осталось разобраться как работает map. вопрос не по STL, а скорее правильно ли я идею написания подхватила? и чем можно заменить собственно использование map'a ??? кода много, за основу взяла абстрактную фабрику Код:
Код:
Код:
Код:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MultiPart Протокол и MJPEG | BleStaR | Общие вопросы C/C++ | 0 | 03.12.2009 19:48 |
протокол блокировки таблицы | Bat{CMD}_Men | БД в Delphi | 4 | 16.10.2009 17:36 |
Протокол футбольного матча | ZDN | Microsoft Office Excel | 1 | 21.04.2008 18:50 |