Я делаю программу чата java socket, и я сделал ее совместимой для нескольких подключений, и когда пользователь присоединяется к ней, она не отправляет сообщение «[пользователь]« всем », один, который подключен, но у меня есть поток для каждого клиента, если кто-нибудь скажет мне, почему он только отправляет сообщение пользователю, который недавно присоединился, я бы очень признателен. Вот код сервераjava socket несколько клиентов, не получающих сообщения
import java.io.*;
import java.net.*;
import java.util.ArrayList;
public class server {
public ObjectInputStream input;
public ServerSocket server;
public Socket s;
public ObjectOutputStream output;
public ArrayList<Socket> users = new ArrayList<Socket>();
public class Accept implements Runnable {
public void run() {
try {
server = new ServerSocket(55555, 100);
} catch (IOException e) {
e.printStackTrace();
}
while(true) {
try {
s = server.accept();
users.add(s);
new EchoThread(s).start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public class EchoThread extends Thread {
private Socket sock;
public EchoThread(Socket s) throws IOException {
this.sock = s;
output = new ObjectOutputStream(sock.getOutputStream());
}
public void run() {
System.out.println(sock.getInetAddress() + " Connected");
try {
for(Socket s: users) {
output.writeObject(s.getInetAddress() + " Connected");
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
server() throws IOException {
Thread t = new Thread(new Accept());
t.start();
}
public static void main(String[] args) throws IOException {
new server();
}
}
я добавил, что в мой код, и он просто посылает пользователю сообщение о том, как когда-либо долго список, так что если список 7 долго он пошлет мне тот же самый msg 7 раз – mardis7021
всего лишь небольшая ошибка ^^ это «s.getInetAdress», а не socket.getInetAdress »:) – MeGoodGuy
он по-прежнему не отправляет сообщение всем пользователям – mardis7021