Hi
ich schreibe eine App mit der ich Bilder vom Smartphone an meinen PC übertragen möchte.
Wenn der Benutzer ein Foto macht soll es direkt an meinen PC übertragen werden.
Die Verbindung von Smarpthone zum Server ist dauerhaft und erfolgt über Sockets.
Mein Problem ist, dass ich nicht erkenne, wann ein Foto komplett übertragen wurde
und wann die Übertragung eines neuen Fotos beginnt.
InputStream.read() müßte mir eigentlich den Wert -1 liefern sobald eine Datei komplett übertragen wurde
laut Doku, aber wenn ich meinen Code teste, dann wird nie die -1 noch der Wert 0 angezeigt, als Rückgabewert.
PC Seite
while(run)
{
number++;
this.out = new FileOutputStream(new File("C:/Users/me/Desktop/DATAEXCHANGE/mBild" + number + ".jpg"));
byte[] buffer = new byte[16384];
/*int len = 0;
while ((len = in.read(buffer)) > 0)
{
out.write(buffer, 0, len);
System.out.println("WHILE: " + len);
}*/
int len = 0;
while (true)
{
len = in.read(buffer);
System.out.println("WHILE: " + len);
out.write(buffer, 0, len);
out.flush();
}
//System.out.println("CLOSE");
//this.out.close();
}
Smartphone Seite
public void sendData(String filePath)
{
try
{
InputStream inputStream = new FileInputStream(new File(filePath));
byte[] buffer = new byte[16*1024];
int len = 0;
while ((len = inputStream.read(buffer)) > 0)
{
out.write(buffer, 0, len);
}
out.flush();
inputStream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}