Im Versuch, ein Bild von einem Android-Client zu einem Python-Server zu senden, habe ich es vor mit einem Python-Test-Client und dem Server erreicht. Im Grunde nimmt meine Client-App ein Formular an, das aus Benutzerdetails und einem Bild besteht. Sobald der Benutzer das Bild auswählt, erhalte ich die uri im onActivityResult Verfahren und analysiere sie in einen String Wie soeine Bilddatei senden Sockets, Android zu Python
selectedImagePath = selectedImageUri.toString();
, wenn die Benutzer Treffer Taste auf dem Formular die Sendeaktivität mit den Formulardaten aufgerufen wird als Extras in einem Array in einem Bündel so.
Bundle b=new Bundle(); b.putStringArray("regValues", new String[]{name,email,selectedImagePath});
in der Sendeaktivität ich eine Verbindung mit dem Server herstellen und versuchen, das Bild wie so zu senden.
` // etablieren Verbindung mit dem Server
try{
//refer to the host computer's loopback interface
host = InetAddress.getByName("10.0.2.2");
link = new Socket(host,port);
in = new BufferedReader(new InputStreamReader(link.getInputStream()));
//access the strings that were passed to this activity
Bundle b = this.getIntent().getExtras();
String[] regFormValues = b.getStringArray("regValues");
//display connection confirmation
String message = in.readLine();
status.setText(message);
File myFile = new File (regFormValues[2]);
byte [] mybytearray = new byte [(int)myFile.length()];
FileInputStream fis = new FileInputStream(myFile);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(mybytearray,0,mybytearray.length);
OutputStream os = link.getOutputStream();
os.write(mybytearray,0,mybytearray.length);
os.flush();
link.close();
}
catch(IOException e){
e.printStackTrace();
}
`
Es verbindet sich mit dem Server kein Problem, die Server erstellt eine Datei für die Ausgabe der Daten als üblich zu schreiben, aber es scheint nur leer, so dass keine Daten werden empfangen. Ich denke, es könnte ein Problem mit dem Dateipfad auf der Client-Seite sein. Irgendwelche Ideen ?
EDIT: Im Grunde würde Ich mag wissen, ob ich die Bilddatei in der richtigen Weise am zugreifen oder wenn Sie bessere Vorschläge haben für den Zugriff auf und es sendet.
ich nicht so scheint, ich habe die Connected to Server-Nachricht auf dem Client erhalten, damit ich weiß, dass ich nur eine leere Datei auf der Server-Seite Bis jetzt wird der Server ein Python-Client vor dem Senden und gearbeitet hat, Empfangen des Bildes Ich denke, es hat mit der Datei im Client zu tun – Shpongle