Ciao ragazzi
prendendo spunto qui sul forum ho creato un server multithread, funziona correttamente però vorrei far sì che se il CLIENT A scriva "ciao" anche gli altri CLIENT dovranno visualizzare ciò che scrive il CLIENT A e viceversa per tutti i client connessi.
(Poichè attualmente se il CLIENT A scrive "ciao" solo lui potrà visionare ciò che scrive)
Leggendo un pò di post nella rete credo che dovrei inserire un Ciclo FOR per fare in modo che gli utenti possano leggere cioè che gli altri scrivano ma siccome non ho ancora tutta questa dimistichezza in JAVA vorrei ser qualche anima pia mi dica come fare..perchè è l'ultima cosa che mi manca e mi sono davvero bloccato..
GRAZIE
codice://Importo i package import java.net.*; import java.io.*; //Creazione di una classe per il Multrithreading class ServerThread extends Thread { private Socket socket; public ServerThread(Socket socket) { this.socket = socket; } //esecuzione del Thread sul Socket public void run() { // Message terminator char EOF = (char)0x00; try { BufferedReader data_in = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter data_out = new PrintWriter(socket.getOutputStream()); data_out.println("Welcome! type EXIT to quit." + EOF); data_out.flush(); boolean quit = false; while (!quit) { String msg = data_in.readLine(); if (msg == null) { quit = true; } else if (msg.trim().equals("EXIT")) { quit = true; } else { data_out.println("You sayed: " + msg.trim() + "" + EOF); data_out.flush(); } //QUI DOVREI FAR LEGGERE I MESSAGGI A TUTTI I CLIENT - MA COME IMPOSTO LA COSA? } data_in.close(); data_out.close(); System.out.println("Ho ricevuto una chiamata di chiusura da:\n" + socket + "\n" + EOF); socket.close(); } catch (IOException e) { System.out.println("Connection lost"); } } } //Classe Server per attivare la Socket public class TCPParallelServer { public void start() throws Exception { ServerSocket serverSocket = new ServerSocket(2055); //Ciclo infinito di ascolto dei Client while (true) { System.out.println("Connessione al Server su porta: 2055"); Socket socket = serverSocket.accept(); System.out.println("Ho ricevuto una chiamata di apertura da:\n" + socket); ServerThread serverThread = new ServerThread(socket); serverThread.start(); } } public static void main(String[] args) throws Exception { TCPParallelServer tcpServer = new TCPParallelServer(); tcpServer.start(); } }

Rispondi quotando

