Не могу подключить к серверу больше одного клиента [закрыт]

97
30 ноября 2020, 12:30
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 1 год назад.

Улучшить вопрос
package Server;
import java.net.*;
import java.io.*;
import java.util.*;
public class Server {
        public static ArrayList<Socket> clients = new ArrayList<Socket>();
    public static void main(String args[]) throws Exception {
        ConnectWithServer.Connect();
    }
}
class ServerWork implements Runnable{
    Socket client;
    public ServerWork(Socket socket) {
        this.client = socket;
    }
    @Override
    public void run() {
        try{

            Scanner input = new Scanner(client.getInputStream());
            PrintWriter output = new PrintWriter(client.getOutputStream(), true);
            Server.clients.add(client);
            System.out.println("Server start");
            output.println("Enter your name: ");
            String name = input.nextLine();
            output.println("Hello, " + name);
            while(input.hasNextLine()) {
                String str = input.nextLine();
                if(str.equals("exit")) {
                    System.out.println(name + " exit");
                    Server.clients.remove(client);
                    break;
                }else {
                    System.out.println(name + " write: " + str);
                    for(Socket i : Server.clients) {
                        output.println(name + " write: " + str);
                    }
                }
            }
            System.out.println("Server stop");
        }catch(Exception exc) {
            exc.printStackTrace();
        }
    }
}
class ConnectWithServer{
    public static void Connect() throws Exception{
        ServerSocket server = new ServerSocket(9090);
        Socket client = server.accept();
        new Thread(new ServerWork(client)).start();
    }
}
Answer 1

Нужно заменить

Socket client = server.accept();
new Thread(new ServerWork(client)).start();

на

while(true){
   Socket client = server.accept();
   new Thread(new ServerWork(client)).start();
}
READ ALSO
Вопрос по классам java

Вопрос по классам java

вопрос состоит в следующем: мне нужно получить список месяцев и их номеров (обычный ArrayList, состоящий из объектов с двумя полями - название...

104
Написать подобие своей консоли на Java

Написать подобие своей консоли на Java

Возникла задача написать что-то на подобии консоли на JavaЧисто для вывода в нее информации

99
Как обеспечить доступ JavaFX-контроллерам к primaryStage с помощью Spring без жесткого связывания?

Как обеспечить доступ JavaFX-контроллерам к primaryStage с помощью Spring без жесткого связывания?

На момент написания данного вопроса я нахожусь в самом начале понимания концепции инъекции зависимости, и всё, что умею делать с ApplicationContext...

106
java работа с текстом

java работа с текстом

Есть текстовый фаил, в котором записано следующие:

112