log.error("McastReceiver.run(): " + ex + ", rsp_packet=" +
System.err.println("McastReceiver.run(): " + ex + ", rsp_packet=" +
            public void run() {                while (running) {                    buf = new byte[16000];                    mcast_packet = new DatagramPacket(buf, buf.length);                    try {                        mcast_sock.receive(mcast_packet);                        req = (DiscoveryRequest) Util.objectFromByteBuffer(mcast_packet.getData());                        System.out.println("<-- " + req);                        // send response back to req.sender_addr                        rsp = new DiscoveryResponse(new InetSocketAddress(local_addr, local_port), req.sender_addr.getAddress());                        buf = Util.objectToByteBuffer(rsp);                        rsp_packet = new DatagramPacket(buf, buf.length, req.sender_addr);                        sock.send(rsp_packet);                    } catch (Exception ex) {                        log.error("McastReceiver.run(): " + ex + ", rsp_packet=" +                                rsp_packet.getSocketAddress() + ", length=" + rsp_packet.getLength() + " bytes");                        ex.printStackTrace();                    }                }            }