Salve, ho un problemino nell' invio di stringhe dal server al client

server :
codice:
public void run() {

	if (socket.isConnected()) {
		System.out.print("\n *** Connessione del Client : "
				+ format(socket) + " ***");
	}
	try {
		BufferedReader fromClient = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		PrintWriter toClient = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true); //autoflush
			
		while (true) {
			//Ascolto i messaggi del client
			String userInput = fromClient.readLine();
			if (!userInput.equals(null)) {
				
			//stampo i messaggi del client
			System.out.print("\nIl Client " + format(socket)+ " ha scritto : " + userInput);
					
			//interpreto i messaggi del client
			int valore = elaboraInput(userInput);
			switch (valore) {
			case 0:
			toClient.println("Comando inserito non valido! Digitare help per la lista dei comandi");
			break;
			case 2:
			toClient.println("Comando ancora non disponibile");
								break;
							case 11:
								toClient.println("Comando 1\n"+
												 "comando 2\n"+
												 "comando 3");
								break;
							case 12:
								toClient.println("Disconnessione dal Server...");
								break;
						}

				}

				if (userInput.equalsIgnoreCase("quit")){
				toClient.close();
				fromClient.close();
				System.out.print("\n *** Disconnessione del Client : "
						+ format(socket) + " ***");
				socket.close();
				break;
				}
			}
		} catch (IOException e) {
			System.out.print("\nErrore nella connessione con il Client "
					+ format(socket) + " : " + e.getMessage());
		}
	}
Client :
codice:
private void connetti(String ip, int porta) {

		try {

			Socket clientSocket = new Socket(ip, porta);
			// clientSocket.setSoTimeout(5000);
			System.out.println("In connessione con il Server...\n");
			// Thread.sleep(10000);

			PrintWriter toServer = new PrintWriter(new OutputStreamWriter(
					clientSocket.getOutputStream()), true); // autoflush
			BufferedReader fromServer = new BufferedReader(
					new InputStreamReader(clientSocket.getInputStream()));
			BufferedReader console = new BufferedReader(new InputStreamReader(
					System.in));

			System.out.println("Connessione stabilita con il Server "
					+ format(clientSocket) + "\n");

			while (true) {
				System.out.print("Client > ");
				String userInput = console.readLine();

				// se viene premuto invio non fare nulla
				if (!userInput.equalsIgnoreCase("")) {

					// mando al server
					toServer.println(userInput);

					// se scrivo quit, mando al server il messaggio di uscita ed
					// esco dal ciclo
					if (userInput.equalsIgnoreCase("quit")) {
						toServer.println(userInput);
						break;
					}

					// leggo la stringa del server e la stampo
					String linea = fromServer.readLine();
					System.out.println(linea);
				}
			}

			console.close();
			fromServer.close();
			toServer.close();
			clientSocket.close();
			System.out.println("Connessione terminata con il Server "
					+ format(clientSocket));

		} catch (UnknownHostException e) {
			System.out.println("Impossibile connettersi al Server " + ip + ":"
					+ porta + " Host sconosciuto!");
		} catch (IOException e) {
			System.out.println("Errore nella connessione con il Server " + ip
					+ ":" + porta);
		}
	}
Quando il client digita help per la lista dei comandi, il server invia una stringa con l'elenco dei comandi. Per ogni comando c'è /n che torna a capo, quindi è come se fossero 3 Stringhe. Il problema è che il client tramite il BufferedReader con il metodo readLine() mi stampa una stringa alla volta!
Come faccio a far stampare tutta la lista dei comandi in un colpo solo?

help me!

Grazie