Ho un ArrayList in Java e un save the socket e un ID univoco.
Quando qualcuno client viene aggiunto in ArrayList, unique id
ho NON è lo stesso con posizione in ArrayList.
Quando qualcuno client è andato rimuovo il client da ArrayList put i need to find the unique id
.
Il mio problema: è quando voglio inviare informazioni al client perché la posizione ArrayList non è la stessa con ID univoco.
Una soluzione: è quando voglio inviare qualcosa che creo un for
nell'array per controllare se l'id univoco è lo stesso e poi inviare le informazioni nella posizione in ArrayList.
Can è fare qualcosa di meglio e più veloce al riguardo, o mi sono bloccato nella soluzione for
Grazie: P
Edit for add code
Increase one the uniqueId,connect first time the client
ClientThread(Socket socket) {
//For every client is connect uniqueId add one more
serverUniqueID = Server.uniqueId++;
Remove client from the server
public static void remove(int id) {
for (int i = 0; i < clientThreadArrayList.size(); i++) {
ClientThread ct = clientThreadArrayList.get(i);
if (ct.serverUniqueID == id) {
clientThreadArrayList.remove(i);
onlineUser--;
return;
}
}
}
Send the message into the 2 client
for(int i=0; i<Server.clientThreadArrayList.size(); i++){
//check if is the same idUniqueServer and the idUsers
int serverId = Server.clientThreadArrayList.get(i).serverUniqueID;
if(idUsers[0]==serverId || idUsers[1]==serverId ){
......
}
}
Spiacente mi dimentico di dirti da un client che voglio inviare il messaggio ad un altro client
Siamo spiacenti