Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SocketChannel передача обьекта 
V
    Опции темы
goodday1941
Дата 11.11.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



 smile Кто-то может привести пример передачи обьека через SocketChannel с дальнейшим его распознанием? 

Это сообщение отредактировал(а) goodday1941 - 11.11.2007, 14:18


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
Platon
Дата 11.11.2007, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



Могу и ошибаться, но я вижу решение такое:
При отправке объекта взять OutputStream и обернуть его ObjectOutputStream, вот собственно и всё, потом в ObjectoOutputStream писать объекты.

На входе взять InputStream и обернуть его ObjectInputStream, потом из ObjectoOutputStream читаешь объект.

Правда скорее всего нужна будет какая-то метка объекта, или просто проверять принятый объект с помощью "instanceof"
PM MAIL ICQ   Вверх
goodday1941
Дата 11.11.2007, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



в случае сокет ченнела (в отличии от простых сокетов) я вроде как работаю не с стримами, а с байт буфером.. хотя могу и ошибаться, инфы в нете что-то вообще мало по этому вопросу

Это сообщение отредактировал(а) goodday1941 - 11.11.2007, 23:09


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
_Michael
Дата 12.11.2007, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



Цитата(goodday1941 @  11.11.2007,  22:35 Найти цитируемый пост)
в случае сокет ченнела (в отличии от простых сокетов) я вроде как работаю не с стримами, а с байт буфером.

Именно. Поетому сериализиуеш сначала твой обьект в массив байт, потом етот массив байт обертаешь ByteBuffer'ом и его пишешь в SocketChannel. Вот набросал наскоро, думаю идея понятна.
Код

    MySerializibleObject test = new MySerializibleObject();
    ByteArrayOutputStream ba = new ByteArrayOutputStream();
    ObjectOutputStream out = new ObjectOutputStream(ba);
    out.writeObject(test);
    byte[] data = ba.toByteArray();
    ByteBuffer src = ByteBuffer.wrap(data); 
    SocketChannel s = SocketChannel.open();
    s.write(src);

Ето пишет в SocketChannel Чтение же в обратном порядке, думаю понятно smile

Это сообщение отредактировал(а) _Michael - 13.11.2007, 13:47


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
goodday1941
Дата 13.11.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



хм... идея понятна smile попутно вопрос.. насколько использование сокет ченела лучше использования обычных сокетов?

Добавлено через 30 секунд
PS... вроде как JMS работает на Сокет ченнеле а не на сокетах как я раньше думал


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
_Michael
Дата 13.11.2007, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 1
Всего: 6



http://exampledepot.com/egs/java.nio/ReadSocket.html тут есть пример чтения. там же линк на пример записи.

А тут пишет чем SocketChannel отличается от просто Socket'ов
http://www.ibm.com/developerworks/java/library/j-javaio/

Это сообщение отредактировал(а) _Michael - 13.11.2007, 13:47


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.