0 / 0 / 4
Регистрация: 31.05.2015
Сообщений: 69
|
|||||||||||
1 | |||||||||||
ObjectInputStream25.10.2022, 16:51. Показов 859. Ответов 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
82 / 222 / 25
Регистрация: 11.08.2022
Сообщений: 2,331
|
|
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) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |