public void handleUDP() throws IOException
    {
        /*
            (1): Retrieve input from Channel
        */
        ByteBuffer input = ByteBuffer.allocate(512);
        this.connection = UDPClientChannel.receive(input);
        String requestLine = new String(input.array());

        if(requestLine.length() == 0)
        {
            //Clients used for testing had a tendency to submit null strings, so
            //  this is to handle those. 
            return;
        }

        String[] lines = requestLine.split("\n");
        String reply = "";        

        /*
            (2): Handle each command. Since UDP comes in all at once via the 
                 ByteBuffer, there is no need to do additional streaming. 
        */
        if(lines[0] == null)
        {
            return;
        }
        else if(lines[0].startsWith("ME IS "))
        {
            System.out.println(this.connection.toString());
            reply = this.server.manager.ME_IS(requestLine, this); 
        }
        else if(lines[0].startsWith("WHO HERE "))
        {
            reply = this.server.manager.WHO_HERE(requestLine, this);
        }
        else if(lines[0].startsWith("LOGOUT "))
        {
            reply = this.server.manager.LOGOUT(requestLine, this);
        }
        else if(lines[0].startsWith("SEND "))
        {
            reply = this.server.manager.SEND(requestLine, this);
        }
        else if(lines[0].startsWith("BROADCAST "))
        {
            reply = this.server.manager.BROADCAST(requestLine, this);
        }
        else
        {
            return;
        }
        
        //Optional output
        this.server.manager.vPrint("RCVD from " + this.getIP() + ": " + 
            requestLine);
        
        try
        {        
            /*
                (3): Write a reply. This is tricky on account of UDP. We're just
                     going to pop open a new socket for writing. 
            */
            byte[] output = new byte[1024];
            output = reply.getBytes();
            
            DatagramSocket outSock = new DatagramSocket();
            DatagramPacket replyPack = new DatagramPacket(output, output.length, 
                this.getIP(), this.getPort());
            
            outSock.send( replyPack );
        }
        catch( IOException e)
        {
            System.err.println("Failed to write message due to IOException");
        }
    }