0 / 0 / 4
Регистрация: 31.05.2015
Сообщений: 69
|
|||||||||||
1 | |||||||||||
ObjectInputStream25.10.2022, 16:51. Показов 899. Ответов 2
Столкнулся с проблемой при создании пересылке объектов через сокеты.
Два клиента подключаются к серверу. Оба создают objectSender (ObjectOutputStream ) - на этом этапе все ок. Потом оба клиента в отдельном потоке создают objectReceiver (ObjectInputStream). И вот на этом этапе я застрял. InputStream in = socket.getInputStream(); - объект создается objectReceiver = new ObjectInputStream(in); - поток намертво виснет, вероятно ожидая входных данных. Но если их послать, он их игнорируется.
Мне даже неважно, чтобы именно этот код заработал - мне просто нужен способ посылать object через java socket, желательно без применения json и прямого чтения байтов ручками. Добавлено через 6 минут Прошу простить меня дурака (я традициооно отвечаю сам себе в течение уже 5 лет. стабильность)... На сервере нужно создать: socketClient1 = serverSocket.accept(); objectSender = new ObjectOutputStream(socketClient1.getOutputStream()); И потом соответственно в клиенте все запускается. Клиенты же общаются не напрямую, а через этот самый сервер, где и нужны встречные потоки. может кому-то поможет...
0
|
25.10.2022, 16:51 | |
Ответы с готовыми решениями:
2
Работа с ObjectInputStream из разных потоков ObjectOutputStream и ObjectInputStream Как добавить объект в HashSet из ObjectInputStream Вывести на экран все объекты из ObjectInputStream альтернативным способом Сериализация. Какая разница между методами методов readObject() и readUnshared() класса ObjectInputStream? |
Valentin Vala Valechka
153 / 227 / 25
Регистрация: 11.08.2022
Сообщений: 2,406
|
|
25.10.2022, 19:25 | 2 |
На самом деле существуют серверный сокет и клиентский сокет.
Серверный сокет слушает на порту, получает запрос и отвечает клиенту. Клиентский сокет подключается к серверу, отправляет запрос и получает ответ. Чтобы различать клиентские запросы, в запрос к серверу можно включить идентификатор клиента. Идентификатор выдаётся при первом подключении и запросу на получение этого идентификатора. Вам же предстоит имплементировать ваш собственный протокол обмена данными. Команда - данные. Команде соответсвуют ваши данные. Коротко описание технологии - на английском. Java Socket Programming
0
|
0 / 0 / 4
Регистрация: 31.05.2015
Сообщений: 69
|
|
26.10.2022, 09:44 [ТС] | 3 |
Спасибо, я посмотрю. Но, видимо, я и сам уже разобрался с этим вопросом.
0
|
26.10.2022, 09:44 | |
26.10.2022, 09:44 | |
Помогаю со студенческими работами здесь
3
ObjectInputStream ObjectInputStream чего-то ждет и не создается Не получается указать путь для Android (LibGDX) (FileInputStream ObjectInputStream) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как узнать какой процесс блокирует файл или каталог в Windows
bt_guru 23.01.2025
При работе с операционной системой Windows пользователи нередко сталкиваются с ситуацией, когда система отказывается выполнять определенные действия с файлами или каталогами, сообщая, что они. . .
|
Как в curl узнать код статуса HTTP запроса. Коды состояния HTTP
bt_guru 23.01.2025
Коды состояния HTTP играют значимую роль в обеспечении эффективного взаимодействия между клиентами и серверами. При работе с веб-сервисами важно не только отправлять запросы, но и правильно. . .
|
Как сортировать вывод команды ls в Linux
bt_guru 23.01.2025
В операционной системе Linux команда ls является одним из наиболее часто используемых инструментов для просмотра содержимого директорий. При работе с файловой системой пользователи регулярно. . .
|
Как сделать POST запрос с помощью curl
bt_guru 23.01.2025
curl - это мощный инструмент командной строки позволяет отправлять и получать данные через различные протоколы, включая HTTP, HTTPS, FTP и множество других. Особенно полезным curl становится при. . .
|
Прокрутка в tmux с помощью мыши и клавиатуры
bt_guru 23.01.2025
Tmux представляет собой мощный терминальный мультиплексор, который позволяет пользователям создавать и управлять несколькими терминальными сессиями внутри одного окна. Одной из важнейших функций tmux. . .
|
Как проверить, содержит ли массив значение в JavaScript. Поиск в массиве
bytestream 23.01.2025
Эффективный поиск значений в массивах становится критически важным навыком для разработчиков, использующих JavaScript. Процесс поиска элементов в массиве может показаться простым на первый взгляд,. . .
|
Как удалить тег Git в удалённом репозитории (remote)
bytestream 23.01.2025
Одним из важнейших механизмов организации версий в Git являются теги, которые позволяют помечать определенные точки в истории проекта как значимые. Теги часто используются для маркировки релизов,. . .
|
Чем отличаются URL, URI и URN
bytestream 23.01.2025
Системы идентификации представляют собой фундаментальный механизм, позволяющий однозначно определять местоположение и характеристики различных информационных объектов в глобальной сети. Эти системы. . .
|
Как центрировать div внутри другого div с помощью CSS. Управление расположением элементов в CSS
bytestream 23.01.2025
Позиционирование элементов играет ключевую роль в создании качественных и профессиональных интерфейсов. Одной из наиболее часто встречающихся задач является центрирование элементов на веб-странице,. . .
|
Что означают различные символы в синтаксисе PHP
bytestream 23.01.2025
PHP (Hypertext Preprocessor) представляет собой один из наиболее широко используемых языков программирования для веб-разработки, который обладает богатой и интересной историей развития. Изначально. . .
|
Способы клонирования объектов в JavaScript
bytestream 23.01.2025
В современной разработке на JavaScript работа с объектами является фундаментальной частью создания любого приложения. При манипуляции объектами часто возникает необходимость создавать их копии для. . .
|
Как проверить состояние чекбокса в jQuery. Как работать с чекбоксами
bytestream 23.01.2025
При разработке интерактивных веб-форм часто возникает необходимость программно определять состояние чекбоксов с помощью jQuery. Чекбоксы являются важными элементами пользовательского интерфейса,. . .
|