تابع دوم از کلاس Server
 
کد PHP:
 
        public void waitForPacket() 
        { 
            while(true) 
            { 
                try{ 
 
                    byte[] data=new byte[100]; 
                        DatagramPacket recievePacket=new DatagramPacket(data,data.length); 
                        socket.receive(recievePacket); 
  displayMessage("\nPacket Received: "+"\nFrom Host: "+recievePacket.getAddress()+"\nHost Port: "+recievePacket.getPort()+"\nLenght: "+recievePacket.getLength()+"\nContaining:\n\t"+new String(recievePacket.getData(),0,recievePacket.getLength())); 
        sendPacketToClient(recievePacket); 
                } 
            catch(IOException e) 
            { 
                displayMessage(e+"\n"); 
            e.printStackTrace(); 
            } 
 
            } 
        }  
 
این متد از یک حلقه بی نهایت استفاده می کند
تا منتظر پاکتهای وارده به سرویس دهنده باشد. در این متد همچنین
از یک DatagramPacket استفاده کرده ایم که بتواند پاکتهای دریافتی را ذخیره کند.
سازنده DatagramPacket به همین منظور دو آرگومان دریافت می کند،
که یکیش آرایه بایتی می باشد که داده ها در آن ذخیره خواهند شد
و دیگریش طول آرایه را در برمیگیرد.
 
 
 
کد PHP:
 socket.receive(recievePacket);  
در قطعه کد بالا زا یک متد receive استفاده کرده ایم .
این متد منتظر رسیدت یک پاکت به سرویس دهنده می باشد.متد
receive تا زمان رسیدن یک پاکت بلوکه می شود،
سپس آرگومان رو در یک DatagramPacket خود ذخیره می کند.
در چنین مواقعی اگر خطائی در زمان دریافت یک پاکت رخ دهد
متد یک استثناء به راه می اندازد که باعث مختل کردن ارسال و دریافت
پاکن ها می شود که دوباره با استفاده از فرمان try این رویداد رو از قبل
بلوکه کردیم.
 
 
نکته :
این رو بیاد داشته باشید همیشه تمام رویدادهایی که قرار است در برنامه هایتان 
اتفاق بیفتد رو از قبل پیش بینی و تا جای امکان بلوکه کنید.