-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服務器,只在通訊端口監聽,沒有別的。
出了什麼問題?
在此先感謝!
你給你的應用程序相應的權限? –
是的,該應用程序有權訪問互聯網 –
可以請你分享變量IP和端口的值?你確定他們提供? –