[英]Android not receiving broadcast UDP, but receiving directed UDP
我有一個問題,我的Android設備(HTC Incredible運行庫存2.3.4 rom)無法接收廣播UDP,但是當我獲得設備的IP(在同一網絡上)並直接發送數據包對於IP,電話立即識別並解釋它。 我已經在兩台不相關的PC上測試了WireShark,其中一台甚至沒有在這個網絡上的同一台交換機上,兩者都能看到數據包(雖然他們確實稱這個數據包“格式錯誤”)然而手機從未收到(它沒有需要來自數據包的任何數據)所以我想知道發生了什么。
同樣的事情也發生在模擬器中。
這是當前的代碼。
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問題 ,我需要圍繞這個進行編程嗎?
提前感謝您提供有關此事的任何幫助。
嘗試使用多播鎖 。 您的手機似乎忽略了不直接發給他的數據包(就像廣播那樣)。
答案有點遲了......但也許它會幫助那些有同樣問題的人。 :)
這是HTC難以置信的問題HTC問題
看起來非常喜歡它。
我需要圍繞這個進行編程嗎?
除了依靠廣播,你不能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.