簡體   English   中英

Android不接收廣播UDP,但接收定向UDP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM