2013-03-28 78 views
1

我一直在發送數據包到客戶端連接到服務器罰款,但試圖 發送相同的數據包到實際的主機本身不斷出現一個錯誤。NullPointer套接字接收或可能是套接字

這是打破

if(socket == null) 
      { 
       try 
       { 
        socket = new DatagramSocket(port); 
       } 
       catch (SocketException e) 
       { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 

      if(server.returnPlayers() > 0) 
      { 

       byte[] buf = new byte[256]; 
       DatagramPacket packet = new DatagramPacket(buf, buf.length); 
       try 
       { 
        socket.receive(packet); ..<---this line 
       } 
       catch (IOException e) 
       { 
        Log.d(TAG, "Error with receiving data"); 
        e.printStackTrace(); 
       } 
       ... 

任何想法,爲什麼代碼?相同的數據包被髮送到客戶端,並且它工作100%。

帆布

+0

是否有可能你的socket = new DatagramSocket(port);在此之前呼叫失敗?你只是在這種情況下打印堆棧跟蹤,並繼續執行 – radai 2013-03-28 08:59:12

回答

0

你的try/catch過當地是可能的「窩」是抓後,仍然無效。將catch移到該代碼的末尾。不要在可能受其影響的代碼之後捕獲異常。