![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| AlexKozlov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 16.12.2008 Репутация: нет Всего: 1 |
Cуть проблемы:
есть куча клиентов, которые по TCPIP цепляются к серверу. Чтобы не мучаться с протоколами сообщений, на клиенте просто цепляем ObjectInput/OutputStream на сокет и радуемся, можно кидать туда-сюда объекты, особо не задумываясь в каком виде они там бегают. На сервере выходит не все так просто. Делать кучу потоков, каждый на своего клиента нехорошо, нужен поллинг. хочется использовать SocketChannel. Но вот вопрос - что потом делать с этими каналами? Прицепить туда те же ObjectInput/OutputStream не кажется тривиальной задачей, а в результате может получится что очередной вызов readObject вызовет блокировку. Решение, которое мне пришло в голову: сделать обертку вокруг ObjectInput/OutputStream и кроме сериализованного объекта передавать его длину. А на приеме естественно первым делом принимаем длину, потом смотрим сколько байтов осталось и если сколько нужно, то только тогда подсовываем его в ObjectInputStream и делаем readObject точно зная что данных хватит и блокировки не будет. Есть варианты лучше? Update: упс... а как-то можно эту тему переместить в работу с сетью? Это сообщение отредактировал(а) AlexKozlov - 10.11.2011, 17:55 |
|||
|
||||
| AlexKozlov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 16.12.2008 Репутация: нет Всего: 1 |
Вот накидал обертку для ObjectOutputStream. Должен принимать объект и толкать его дальше уже с длиной
Это сообщение отредактировал(а) AlexKozlov - 10.11.2011, 18:17 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |