2011-10-13 1 views
3

내 Android 기기 (HTC Incredible running 2.3.4 ROM)가 브로드 캐스트 UDP를 수신하지 못하는데 문제가 있습니다. (같은 네트워크 상에있는) 장치가 IP에 직접 패킷을 보내면, 전화기는이를 즉시 인식하고 해석합니다. 필자는 두 개의 서로 관련없는 PC에서 WireShark를 테스트했는데,이 네트워크의 동일한 스위치조차도 테스트하지 않았으며 둘 다 패킷을 볼 수 있습니다 (패킷을 "잘못된 형식"이라고 부름). 그러나 전화는 수신되지 않습니다. 패킷의 데이터가 필요함) 무슨 일이 일어 났는지 궁금합니다.Android가 브로드 캐스트 UDP를받지 못하지만 방향 지정 UDP를 수신 중

동일한 문제가 에뮬레이터에서도 발생합니다.

이것은 현재 코드입니다.

   m_UDPSocket = new DatagramSocket(9000); 
       m_UDPSocket.setBroadcast(true); // unneeded? 
       boolean finished = false; 

       byte[] buf = new byte[1024]; 
       DatagramPacket packet = new DatagramPacket(buf, buf.length); 

       m_UDPSocket.setSoTimeout(1000); 
       do { 

        finished = true; 
        try 
        { 
         m_UDPSocket.receive(packet);  
        } 
        catch (SocketTimeoutException e) 
        { 
         finished = false; 
         System.out.print("Socket recieve timed out");        
        } 

       } while(finished == false); 
       System.out.print(buf); 
       InetAddress address = packet.getAddress(); 

그래서 어떤 이유로 UDP 브로드 캐스트 패킷을 거부 내 전화, 어떤 방법이 내 휴대 전화에서 패킷을 수신하는지 테스트하는 것입니다? 이 HTC 놀라운 문제는 HTC issue,이 주위에 프로그램이 필요합니까?

이 문제에 관해 도움을 주실 수 있도록 미리 감사드립니다.

+0

멀티 캐스트 주소 (또는 브로드 캐스트)가 필요합니다. 둘 다 특별한 주소이고 브로드 캐스트는 네트워크 종속적입니다. http://en.wikipedia.org/wiki/Multicast_address – bestsss

+0

브로드 캐스트 주소를 사용하고 있습니다. 수신을 테스트하고 있던 두 시스템 모두 동시에이를 볼 수 있었으며 192.168.78.255라는 서브넷에 전송되었습니다. – Kinglink

+0

이더넷 케이블이나 wifi로 연결된 기계입니까? – slayton

답변

0

아주 많이 것 같은데 이것을 HTC 인크 레 더블 문제 HTC 문제입니다.

이 문제를 해결해야합니까?

브로드 캐스트를 사용하는 것 외에는 할 수 없습니다.

2

multicastlock을 사용해보세요. 귀하의 휴대 전화가 그에게 직접 전달되지 않은 패킷을 무시하고있는 것으로 보입니다 (브로드 캐스트 일 것임).

답변이 늦었습니다 ...하지만 같은 문제가있는 누군가에게 도움이 될 수 있습니다. :)

관련 문제