![]() |
Модераторы: Daevaorn Страницы: (89) « Первая ... 13 14 [15] 16 17 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
я создавал карту типов так:
http://liveworkspace.org/code/26d4922d44f6...c66cd6f41aa7257 Добавлено через 1 минуту и 3 секунды
ну да.. тогда mpl ![]() Добавлено через 1 минуту и 41 секунду значит код приведенный выше не актуален. |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
в связи с тем, что мне сейчас нужно реализовать передачу/прием пакетов по сети, и как следствие, паковать и распаковывать их, возник следующий вопрос:
пакету нужен заголовок для инфы о нем(id типа, и размер тела). при этом, размер заголовка неизменен. так вот.. для десериализации и диспетчеризации пакета при приеме, нам нужно извлечь из него id и размер тела. при том, размер тела нам так же нужен для чтения тела из сети, т.к. его размер не константен. собственно сам вопрос: нам нужны два типа: 1) packet_header, 2) packet_data. так? и еще вопрос: с packet_header - понятно, две целых. а как быть с packet_data? он ведь по сути просто строка. можно затайпдефить. или как? лучше заранее спрошу..а то опять чего-то не так накожу) |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
только они не связаны с rpc_packet.. пусть он будет net_packet { header, data }; тут уже можно использовать константные буфферы и делать проверку если rpc_packet не помещается в net_packet ![]() Добавлено через 7 минут и 14 секунд хотя наверно сама структура net_packet лишняя.. так как дата у нас и так есть... серверу нужен общий буфер, и обоим хидер, или даже не хидер , а preamble ![]() Это сообщение отредактировал(а) mes - 29.10.2010, 16:39 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
а нам не нужно передавать/принимать rpc_packet::id ? Добавлено через 50 секунд опять не понимаю... |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
вот так примерно может выглядит функция отправляющая в сокет :
Это сообщение отредактировал(а) mes - 29.10.2010, 19:11 |
|||
|
||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
я, заголовок пакета вижу таким:
тип пакета таким:
все. нам нужны две функции для упаковки типа в массив байт, и для распаковки. шаблонные. так же, информационные аксесоры, такие как: get_class_id, get_method_id, get_body_size, get_raw_data |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
какое это имеет отношение к нашим net_ или rpc_ ?! |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
т.е.
? |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
rpc_packet не трогать! разве что заменить raw_data на просто data.. или на просто raw.. чтоб не так длинно было.. ![]() Добавлено @ 17:33 нет.. Вы делаете зависимость от конкретной машины... использовать sizeof нельзя.. Это сообщение отредактировал(а) mes - 29.10.2010, 17:48 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
второго типа пакета у нас и так нет, есть только преамбула.. а она отношение имеет только к сетевой передаче.. скрестив их, мало того что увеличиваете связанность, так еще своим предположением в рпц о преамбуле Вы связываете руки net-"разработчику" ![]() Это сообщение отредактировал(а) mes - 29.10.2010, 17:48 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
ок.
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
с названиями у нас все таки не порядок.. но пока чего то не приходит как это исправить..
ладно пока подождем.. просто высказался. чтоб в голове не держать.. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
с pack.raw_data все понятно. но вот кто такой id в pack.raw_data ?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |