Mensaje de error de Android DatagramSocket: EADDRINUSE (Dirección ya en uso)

Estoy tratando de escribir una aplicación de chat simple de Android. He creado una clase de servicio que maneja todas las comunicaciones de red. El enlace de DatagramSocket está en un hilo separado. Una vez que estoy recibiendo este error y la aplicación falla:

java.net.BindException: bind failed: EADDRINUSE (Address already in use)
at libcore.io.IoBridge.bind(IoBridge.java:89)
at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:68)
at java.net.DatagramSocket.createSocket(DatagramSocket.java:133)
at java.net.DatagramSocket.<init>(DatagramSocket.java:78)

Y este es el código que lo produce. El error se produce en la línea connuevo DatagramSocket ¿Cómo puedo evitar este error? Gracias.

private class ComThread extends Thread {

        private static final int BCAST_PORT = 8779;
        DatagramSocket mSocket;
        InetAddress myBcastIP, myLocalIP;

        public ComThread() {

            try {
                myBcastIP = getBroadcastAddress();
                if (D)
                    Log.d(TAG, "my bcast ip : " + myBcastIP);

                myLocalIP = getLocalAddress();
                if (D)
                    Log.d(TAG, "my local ip : " + myLocalIP);

                if (mSocket == null) {
                    mSocket = new DatagramSocket(BCAST_PORT);
                    mSocket.setReuseAddress(true);
                    mSocket.setBroadcast(true);
                }           

            } catch (IOException e) {
                Log.e(TAG, "Could not make socket", e);
            }
        }

Respuestas a la pregunta(3)

Su respuesta a la pregunta