Salve amici sto riscontrando un problema nella realizzazione di questo semplice programma

Client:
codice:
importjava.io.BufferedReader;import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;

import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

class ClientTCP {

    public static void main (String[] args) throws IOException {

    	String msg, msg2;
    	final int YOU = 0;
    	final int PEER = 1;
    	final int EXIT = 2;
    	int status = YOU;
//long off;

    	Socket clientSocket = new Socket("127.0.0.1", 6789); 

    	Scanner scriveClient = new Scanner(System.in); 

    	Scanner leggeServer = new Scanner (clientSocket.getInputStream()); 

        PrintStream outToServer = new PrintStream(clientSocket.getOutputStream()); 
		while(status != EXIT) {
        switch(status) {
case YOU:	// client scrive
        		System.out.print("YOU> ");
                msg = scriveClient.nextLine();	


// fa un controllo sul msg, se c'è il punto il client si deve disconnettere
                CharSequence cs = ".";
                if(msg.contains(cs)) {
             	   status = EXIT;
             	   break;
                }




                outToServer.println(msg);	// ilmessaggiovienemandatoal server
                status = PEER;
                break;

        	case PEER:	// client legge
        		msg2 = leggeServer.nextLine();
        		System.out.println("PEER> " + msg2);
        		status = YOU;
        		break;
        }
	}

        System.out.println("Il server si è disconnesso!!!!!");
        clientSocket.close(); 
    }
}



Server:
codice:
import java.net.ServerSocket;import java.net.Socket;
import java.util.Scanner;

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;

class ServerTCP {

    public static void main (String[] args) throws IOException {
    		String msg, msg2;
    		final int YOU = 0;
        	final int PEER = 1;
        	final int EXIT = 2;
        	int status = PEER;
    		String c;
    		String c2;


    		ServerSocket welcomeSocket = new ServerSocket(6789); 

    		Scanner scriveServer = new Scanner(System.in); 

    		Socket connectionSocket = welcomeSocket.accept(); 

    		Scanner leggiClient = new Scanner(connectionSocket.getInputStream()); 

    		PrintStream outToClient = new PrintStream(connectionSocket.getOutputStream());
    		while(status != EXIT) {
    		 switch(status) {
            	case YOU:	// server scrive
            		System.out.print("You> ");
                    msg = scriveServer.nextLine();	
                    outToClient.println(msg);	
                    status = PEER;
                    break;

            	case PEER:	// server legge
            		msg2 = leggiClient.nextLine();
            		System.out.println("Peer> " + msg2);
            		status = YOU;
            		break;
            }
    	}
    		System.out.println("Il client si è disconnesso!!!!");
//	connectionSocket.close(); // e chiudo la connessione	

      }
    }
Il problema che sto riscontrando è il seguente: il client nel momento in cui digita il . sta dicendo che vuole disconnettersi dal server, pertanto al server deve arrivare un messaggio del tipo "Il client si è disconnesso" e deve cessare la comunicazione.La stessa cosa la dovrò implementare anche per il server e così via.Per il momento ho implementato questo codice dal lato client
codice:
 CharSequence cs = ".";                if(msg.contains(cs)) {
             	   status = EXIT;
             	   break;
                }
però quando digito il punto mi solleva questa eccezione:

Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1516)
at es3_5modificato.ServerTCP.main(ServerTCP.java:43)
Qualche consiglio pervafore??