Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 21.11.2013
Сообщений: 110

Как вывести всем клиентам сообщение?

15.11.2015, 19:56. Показов 1823. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс который создает сервер
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
package server;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
 
public class server_socket {
    public server_socket()
    {
        int i = 1;
        try {
            //создать новый сокет
            ServerSocket sc = new ServerSocket(8189);
            //дать возможность войти
            while (true) {
                Socket incoming = sc.accept();
                Runnable runnable = new work(incoming);
                Thread tr = new Thread(runnable);
                //запустить поток
                tr.start();
                i++;
            }
        }
        catch(IOException e)
        {
            System.out.println(e);
        }
    }
}
и сама часть где идет обработка введенных данных клиентом
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
34
35
36
37
38
39
40
41
package server;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class work implements Runnable {
        private Socket incoming;
        //конструктор инициализации
        public work(Socket i) {
            incoming = i;
        }
        public void run()
        {
            try {
                try {
                    //инициализация входящих потоков и исходнящих
                    InputStream inST = incoming.getInputStream();
                    OutputStream otST = incoming.getOutputStream();
                    Scanner in = new Scanner(inST);
                    PrintWriter out = new PrintWriter(otST, true);
                    out.println("SEY BYE TO EXIT");
                    boolean done = false;
                    while (!done && in.hasNextLine()) {
                        String line = in.nextLine();
                        out.println("echo" + line);
                        if (line.equals("BYE"))
                            done = true;
                    }
 
                } finally {
                    incoming.close();
                }
            }
            catch (IOException e)
            {
                System.out.println(e);
            }
        }
    }
Помогите дописать функцию которая будет принимать стрингу с сервера и выводить...

Добавлено через 3 часа 18 минут
Все разобрался.

Добавлено через 10 секунд
CLOSE
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2015, 19:56
Ответы с готовыми решениями:

Отправка сообщения всем клиентам
Пишу (пробую) чат на сокетах. Клиент на андроиде. И не могу уже день разобратся с проблемой отправки сообщения всем клиентам. Я пробовал...

Отправка сообщений всем клиентам
Здравствуйте. Создал многопоточный сервер, но никак не могу разобраться с тем, чтобы сервер отправлял сообщение всем клиентам а не только...

Как отправить данные всем клиентам
Есть сервер static void Main(string args) { TcpListener server = null; try { ...

1
1 / 1 / 1
Регистрация: 20.12.2015
Сообщений: 12
02.01.2016, 10:31
КЛИЕНТ
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.Socket;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
 
 
public class Main extends JFrame implements Runnable
{
    static private Socket connection;
    static private ObjectOutputStream output;
    static private ObjectInputStream input;
    public static void main(String[] args)
    {
        new Thread(new Main("Test")).start();
        new Thread(new Server()).start();
    }
    public Main(String name)
    {
        super(name);
        setLayout(new FlowLayout());
        setSize(300,300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        setLocationRelativeTo(null);
        JTextField t1 = new JTextField(10);
        JButton b1 = new JButton("Send");
        b1.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent arg0)
           {
              if (arg0.getSource() == b1)
              {
                sendDate(t1.getText());
              }
           }    
        });
        add(t1);
        add(b1);
    }
    @Override
    public void run()
    {
     try
        {
        
        while(true)
        {
            connection = new Socket(InetAddress.getByName("127.0.0.1"), 5678);
            output = new ObjectOutputStream(connection.getOutputStream());
            input = new ObjectInputStream(connection.getInputStream());
            JOptionPane.showMessageDialog(null, (String)input.readObject());
        }
     }
     catch (UnknownHostException e)
     { e.printStackTrace(); }
     catch (IOException e)
     { e.printStackTrace(); }
     catch (ClassNotFoundException e){}
     catch (HeadlessException e){}
 
 
    }
    private static void sendDate(Object obj)
    {
        try
        {
        output.flush();
        output.writeObject(obj);
    }
    catch (IOException e) {}
    }
}
СЕРВЕР
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
34
35
36
37
38
39
40
mport javax.swing.*;
import java.awt.*;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
 
public class Server implements Runnable
{
    static private ServerSocket server;
    static private Socket connection;
    static private ObjectOutputStream output;
    static private ObjectInputStream input;
    public void run()
    {
        try
        {
            server = new ServerSocket(5678, 10);
          while(true)
           {
            connection = server.accept();
            output = new ObjectOutputStream(connection.getOutputStream());
            input = new ObjectInputStream(connection.getInputStream());
            JOptionPane.showMessageDialog(null, (String)input.readObject());
            output.writeObject("Вам прислали: " + (String)input.readObject());
           }
         }
         catch (UnknownHostException e)
            { e.printStackTrace(); }
         catch (IOException e)
            { e.printStackTrace(); }
         catch(ClassNotFoundException e){}
         catch (HeadlessException e){}
 
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.01.2016, 10:31
Помогаю со студенческими работами здесь

Клиент отправляет сообщение сервеу, а сервер это отправляет всем клиентам...
Есть сервер и несколько клиентов. Клиент отправляет сообщение сервеу, а сервер это отправляет всем клиентам. Прошу помочь разобраться.

Отправка всем клиентам
Что бы с сервера - server=socket.socket() отправить всем клиентам сообщение нужно использовать server.send()?

Рассылка текста всем клиентам
Всем привет. Нужна помощь: Требуется разослать текст от сервера всем клиентам. Dim IP As IPAddress Dim Port As...

Разослать сообщения всем подключенным клиентам
может быть пишу не в нужный раздел, но более подходящего не нашёл, если не туда написал, перенесите тему в нужный раздел проблема...

Передача сообщения всем подключенным клиентам
есть класс сервера package simplenetserver; /* * To change this template, choose Tools | Templates * and open the template...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru