2017-07-27 85 views
-1

我正在開發一個Android應用程序,它將通過Socket將相機流發送到Node.js Web服務器。當應用程序必須創建套接字時,應用程序不會執行try語句內的代碼,但即使啓動任何catch異常。未創建Android套接字

MyThread.java

protected Void doInBackground(Void... unused) { 

    OutputStream os = null; 

    try {Log.d("MyCameraApp", "HERE1"); 
     mSocket = new Socket(ip, port); 

     if (mSocket != null) {Log.d("MyCameraApp", "SOCKET CONNECTED"); 

      try { 
       os = mSocket.getOutputStream(); 

       while (true) { 
        DataOutputStream dos = new DataOutputStream(os); 
        dos.writeInt(4); 
        dos.writeUTF("#@@#"); 
        dos.writeInt(mFrameBuffer.size()); 
        dos.writeUTF("[email protected]@-"); 
        dos.flush(); 
        dos.write(mFrameBuffer.toByteArray()); 
        dos.flush(); 
        Thread.sleep(1000/15); 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 

       try { 
        if (os != null) 
         os.close(); 
       } catch (Exception e2) { 
        e.printStackTrace(); 
       } 

      } 
     } 
     else { 
      Log.d("MyCameraApp", "SOCKET NULL"); 
     } 

    } 
    catch(UnknownHostException e) { 
     Log.d("MyCameraApp", "CATCH SOCKET"); 
     e.printStackTrace(); 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 

    return null; 
} 

CameraActivity.java

try { 
    mThread = new MyThread(getApplicationContext(), SERVERIP, SERVERPORT); 
    mThread.execute();Log.d("MyCameraApp", "WELL DONE"); 
} 
catch(Exception e) { 
    e.printStackTrace(); 
    Log.d("MyCameraApp", "CATCH"); 
} 

的CameraActivity創建mThread對象和應用程序只顯示嘗試裏面的日誌 'HERE1',創建套接字之前和然後顯示日誌'WELL DONE'。

我有一個基本的Node.js服務器,只在通訊端口監聽,沒有別的。

出了什麼問題?

在此先感謝!

+0

你給你的應用程序相應的權限?

+0

是的,該應用程序有權訪問互聯網 –

+0

可以請你分享變量IP和端口的值?你確定他們提供? –

回答

0

Android設備通過wifi連接,電腦通過以太網連接...不同子網。