![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Michael.de |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: нет Всего: 9 |
У меня есть вопрос, который появился из-за изменения задачи, описанной в >>соседней теме<<
Запускается Socket-сервер. Он генерирует default.ini с некоторыми параметрами, в том числе и со своим IP. Этот сгенерированный файл переносится на несколько клиентов, которые затем также запускаются. Клиенты есть двух типов: Recorder (считывает состояние камер и пересылает информацию на сервер) и Display (получает информацию от сервера и отображает её). Клиентов каждого типа может быть несколько. Изначально было всего один сервер и один клиент. Клиент считывал состояния камер, пересылал всё серверу, который всё отображал. И всё прекрасно работало, пока было всего 1 соединение... а сейчас их несколько. Я набросал рабочий пример, но остаётся проблема, что я могу с сервера ответить клиенту, передавшему ему информацию... а как мне переслать её другим клиентам?
|
||||||
|
|||||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15702 Регистрация: 24.3.2004 Репутация: 19 Всего: 535 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Michael.de |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: нет Всего: 9 |
LSD, возможно. Я уже лет 10 как системным администратором работаю и мои Java знания остались на уровне 7-8 версии. За пример спасибо, буду разбираться
![]() |
|||
|
||||
SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: нет Всего: 18 |
ClientThread st = new ClientThread(serverClient, counter);
// list.add(sct); // а дальше? ![]() st.run(); надо в Thread запускать: Thread t = new Thread(new ClientThread(serverClient, counter)); t.start(); Добавлено через 3 минуты и 14 секунд try { DataInputStream inStream = new DataInputStream(serverClient.getInputStream()); DataOutputStream outStream = new DataOutputStream(serverClient.getOutputStream()); String clientMessage = ""; String serverMessage = ""; while (!clientMessage.equals("exit")) { clientMessage = inStream.readUTF(); serverMessage = "From Server to Client-" + clientNumber +": you've sent a message \""+ clientMessage + "\""; System.out.println("From Client-" + clientNumber+ ": message \"" + clientMessage + "\" received :"); outStream.writeUTF(serverMessage); outStream.flush(); } inStream.close(); outStream.close(); serverClient.close(); } catch(IOException e) { e.printStackTrace(); } finally { System.out.println("Client -" + clientNumber + " exit!"); } } -- Используйте try с ресурсами, - могут не закрыться потоки... Добавлено через 7 минут и 15 секунд DataInputStream inStream = new DataInputStream(serverClient.getInputStream()); DataOutputStream outStream = new DataOutputStream(serverClient.getOutputStream()); -> catch(IOException e) { e.printStackTrace(); ----- ДатаСтримы могут возвращать конец связи как ошибку, - надо обрабатывать и EOFException ... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |