8 / 8 / 2
Регистрация: 19.12.2013
Сообщений: 87

Мулти-клиентовая чат аппликация

03.06.2015, 22:08. Показов 2064. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Чат аппликация, поддерживающая сразу несколько клиентов. Сделал thread класс который открывает для каждого юзера свой поток. Но не понимаю как сделать чтобы сообщение отправленное одним клиентом, вывелось у всех остальных клиентов. Подскажите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.06.2015, 22:08
Ответы с готовыми решениями:

Аппликация VB на сервере
Есть сервер и несколько подсоедененных clients. На сервере находится база данных (MSAccess mdb). Необходимо написать программу на VB,...

Портативная аппликация JavaFX
Всем доброго времени суток! Объясните пожалуйста чайнику. Хочу сделать портативную аппликацию JavaFX. Под этим я подразумеваю...

Показать, что аппликация комбинаторов не ассоциативна
Здравствуйте, очень нужна помощь в решении данной задачи: Показать, что аппликация комбинаторов не ассоциативна. Точнее, существуют такие...

23
8 / 8 / 2
Регистрация: 19.12.2013
Сообщений: 87
12.06.2015, 15:55  [ТС]
Студворк — интернет-сервис помощи студентам
вроде бы да, все отлично
0
8 / 8 / 2
Регистрация: 19.12.2013
Сообщений: 87
19.06.2015, 12:24  [ТС]
на панеле где список клиентов, хочу возле каждого ника вывести картинку. Пока у меня список клиентов находится в JTextArea, что лучше для этого использовать?
0
0 / 0 / 2
Регистрация: 15.04.2015
Сообщений: 25
19.06.2015, 12:37
подскажите, а как организовать прослушку клиента на наличие поступивших от него сообщений? типа таким циклом ?:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public void run(){          //метод, выполняемый при запуске потока для отдельного юзера
            try {
                while((stringMessage=userMessageReader.readLine()) != null){
                    message.append(userNicknameCollection).append(stringMessage).append('\n');
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        out.println("InterruptedException");
                        e.printStackTrace();
                    }
                }
                sendAll(message);
            } catch (IOException e){
                out.println("IOException"); 
                e.printStackTrace();
            }
        }
Если да, то ведь после завершения метода run() прослушка входящего потока от клиента вестись не будет и новых сообщений не получим. Если я правильно все понял, то нужно гдето в потоке с клиентом организовать цикл, но где и какой? Смотрел в других примерах реализации чата на сокетах никаких дополнительных циклов нет=/ И вот не пойму, где происходит постоянный скан входящего потока от клиента, ведь run() не вечен.
0
8 / 8 / 2
Регистрация: 19.12.2013
Сообщений: 87
20.06.2015, 01:58  [ТС]
у меня, создается на стороне клиента поток, который бесконечно считывает сообщения, останавливается он только в том случае, если клиент отключается. Пока переменная keepGoing == true, цикл будет крутиться, как только клиент отрубается, keepGoing == false и цикл останавливается, выглядит это примерно так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class MessageListener extends Thread
{       
    public void run() 
    {
        while(keepGoing)
        {
        
            try 
            {
 
                    Message msg = (Message)ois.readObject();
                    
                    if(msg.getConnectedUsersList() == null)
                    {
                        ....
                    }
                    else
                    {                       
                        ....                
                    }
 
            } 
            catch(ClassNotFoundException | IOException e) 
            {
                System.out.println("Error receiving data: " + e);  
                break;
            }
            
        }
        
        
    }
}
Добавлено через 12 часов 52 минуты
пополняю функционал чата, есть идеи сделать: историю, скины, звуки(уже сделал), фото клиента, отослать файл, смaйлики.

подскажите еще чего нибудь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.06.2015, 01:58

Android аппликация работаюшея с веб сервисом на .net(c#)
Доброе время суток. Мне нужно реализовать андроид аппликацию которая будет получать данные из веб сервиса . Тип данных это картинки jpeg...

Как создается аппликация, которая будет обращаться с БД?
Как создается аппликация, которая будет обращаться с БД? (MySQL+Java)

Чат или видео чат
Создал тему здесь, т.к. ближайшего раздела не вижу. Хотелось бы понять как установить видеочат, типа бонгакамс, если есть бесплатная...

Чат в 8.1
Подскажите, пожалуйста, есть ли чат между пользователями внутри 8.1.для удобства оповещения

чат
подскажите пожалуст какой нить исходник или что нибудь для написания чата или icq или маил агента для общения по интернету.. под Qt или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru