내 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,이 주위에 프로그램이 필요합니까?
이 문제에 관해 도움을 주실 수 있도록 미리 감사드립니다.
멀티 캐스트 주소 (또는 브로드 캐스트)가 필요합니다. 둘 다 특별한 주소이고 브로드 캐스트는 네트워크 종속적입니다. http://en.wikipedia.org/wiki/Multicast_address – bestsss
브로드 캐스트 주소를 사용하고 있습니다. 수신을 테스트하고 있던 두 시스템 모두 동시에이를 볼 수 있었으며 192.168.78.255라는 서브넷에 전송되었습니다. – Kinglink
이더넷 케이블이나 wifi로 연결된 기계입니까? – slayton