
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
08.06.2006, 12:28
|
|||
|---|---|---|---|
Передача между сокетами с использованием CArchive |
|||
|
#18+
у меня есть клиент и сервер на MFC. они работают через сокеты. есть класс B (в нем нет методов, но могут быть вектора stl). Могу ли я передать элемент этого класса через сокет с использованием CArchive. Я просто читал в мсдн что вроде это реально. Прав ли я. Сейчас у все побайтно работает. Считывается заголовок потом идет обработка. А хотелось бы сразу передать объект. Как мне это можно сделать? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.06.2006, 13:19
|
|||
|---|---|---|---|
Передача между сокетами с использованием CArchive |
|||
|
#18+
Ни в коем случае не используй CSocket класс MFC и все приблуды к нему типа CSocketFile - проблем не огребешь ... работай через CAsyncSocket ... по существу вопроса не понимаю твоих затруднений ... передаваться в любом случае будет поток байт ... а ты что хотел? ... пиши для своего класса серелизацию через CArchive, используя например CMemoFile, потом делаешь Detach из файла - получишь свои байты и передавай их как обычно ... на сервере также пишешь все принятые байты в CMemoFile делаешь обратную серелизацию через CArchive и получаешь свой объект ... ты это хотел услышать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.06.2006, 13:57
|
|||
|---|---|---|---|
Передача между сокетами с использованием CArchive |
|||
|
#18+
Да! 1.А еще тогда встречный вопрос если в классе будут методы которые будут выполняться локально (т.е. одинаковый класс и у клиента и сервера, но передаются только данные). Скажется ли это как то 2. Можно небольшой пример как это реализовать Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.06.2006, 14:34
|
|||
|---|---|---|---|
Передача между сокетами с использованием CArchive |
|||
|
#18+
хех ... 1. не понял ... если твой класс(объект те который ты создал на его основе) работает в определенном окружении ... ммм... внешних данных (внешняя среда?), то разумеется на сервере эта самая среда тебе будет недоступна ... если ты и ее не передашь :)) 2. эээ ... серелизацию опустим ... ну не знаю ... так чтоли Код: plaintext 1. 2. 3. 4. 5. 6. 7. инициализируешь CMemFile перед формированием нового пакета: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ну а на сервере пишешь приходящие байты в CMemFile (кроме тех самых первых четырех, разумеется) затем Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2031062]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
222ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 525ms |

| 0 / 0 |
