Hi,

I have written an app what is receiving UDP broadcast messages (via
WLAN). It is running on an HTC magic (1.6) without any problems. But
on a HTC Desire (2.1.1) or Motorola Milestone (2.0.1) we receive
nothing.
We tryed to send the broadcast by the phone it self, this is working
on all phones...

Has anyone a clue what could be wrong?

Thx

Marco

here my code:
---
DatagramSocket dsocket;
                                        try {
                                                dsocket = new 
DatagramSocket(BROADCAST_PORT);
                                                dsocket.setReuseAddress(true);
                                        } catch (SocketException e) {
                                                
CDebug.getLog().log(Level.SEVERE,
                                                                "Could not open 
Backend broadcast listener", e);
                                                return;
                                        }

                                        // Create a buffer to read datagrams 
into. If a
                                        // packet is larger than this buffer, 
the
                                        // excess will simply be discarded!
                                        byte[] buffer = new byte[2048];

                                        // Create a packet to receive data into 
the buffer
                                        DatagramPacket packet = new 
DatagramPacket(buffer,
                                                        buffer.length);

                                        CDebug.getLog().log(Level.FINE,
                                                        "Open Backend broadcast 
listener on Port: " + BROADCAST_PORT);
                                        dsocket.setSoTimeout(300); // max time 
the socket is blocked
                                        // System.out.println("open poard");
                                        // Now loop forever, waiting to receive 
packets and printing
                                        // them.
                                        while (true) {
                                                if (stopBroadcastListening) {
                                                        dsocket.close();
                                                        return;
                                                }
                                                // Wait to receive a datagram
                                                try {

                                                        dsocket.receive(packet);
                                                        oneBroadcastReceived = 
true;
                                                } catch (SocketTimeoutException 
e) {
//                                                      Debug
//                                                      .getLog().info("Backend 
broadcast listener timeout");
                                                        continue;
                                                } catch (IOException e) {
                                                        CDebug
                                                                        
.getLog()
                                                                        .log(
                                                                                
        Level.SEVERE,
                                                                                
        "Could not read from Backend broadcast listener socket.
close connection",
                                                                                
        e);
                                                        dsocket.close();
                                                        return;
                                                }

                                                // Convert the contents to a 
string, and display them
                                                String msg = new String(buffer, 
0, packet.getLength());
                                                InetSocketAddress sender = 
(InetSocketAddress) packet
                                                                
.getSocketAddress();
//                                              System.out.println(sender + 
msg);
                                                CDebug.getLog().log(
                                                                Level.INFO,
                                                                "Receive 
Broadcast from "
                                                                                
+ sender.getHostName() + ":" + msg);

                                                try {
                                                        
ObjectParser.fireEventsForMessage(msg, me,sender);
                                                } catch (Exception e) {
                                                        CDebug.getLog().log(
                                                                        
Level.WARNING,
                                                                        "Could 
not compute received message from Backend broadcast:"
                                                                                
        + msg, e);
                                                }

                                                // 
System.out.println(packet.getAddress().getHostName()
                                                // +
                                                // ": " + msg);

                                                // Reset the length of the 
packet before reusing it.
                                                packet.setLength(buffer.length);
                                        }
                                } catch (Throwable t) {
                                        
CAirport.getInstance().unsetBroadcastListening();
                                }
                        }

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to