Invio immagini da client android a server java

di il
3 risposte

Invio immagini da client android a server java

Ciao a tutti,
ho un client android ed un server java. Sono riusciti a farli comunicare, e riesco ad inviare e ricevere messaggi di testo da entrambi i lati.
Adesso dovrei inviare un immagine dal client android al server e non so come fare..sapreste aiutarmi ?

io per l'invio di testo semplice dal client al server ho utilizzato questo codice :
try {
			    	 
			        client = new Socket("10.0.2.2", 4444);  //connect to server from emulator
			     
			        printwriter = new PrintWriter(client.getOutputStream(),true);
			        printwriter.write(message);  //write the message to output stream
			        
			    
			        printwriter.flush();
			        printwriter.close();
			        client.close();   //closing the connection
			    
			       } catch (UnknownHostException e) {
			        e.printStackTrace();
			       } catch (IOException e) {
			        e.printStackTrace();
			       }

3 Risposte

  • Re: Invio immagini da client android a server java

    First01 ha scritto:


    Adesso dovrei inviare un immagine dal client android al server e non so come fare..sapreste aiutarmi ?
    Visto che lavori con i socket a livello "crudo", ovvero basilare, sei tu che puoi/devi "inventarti" il protocollo di comunicazione che stabilisce cosa/come/quando inviare tutti i tipi di dati che devi trattare.
    E chiaramente un PrintWriter non è più quello che ti serve.
  • Re: Invio immagini da client android a server java

    Per quanto riguarda l'invio credo di aver risolto con l'uso di OutputStream, su cui vado a scrivere il file da inviare.
    Adesso sul server devo ricevere l'immagine, ma una volta ricevuta come posso visualizzarla in un jFrame ?
  • Re: Invio immagini da client android a server java

    First01 ha scritto:


    per quanto riguarda l'invio credo di aver risolto con l'uso di OutputStream, su cui vado a scrivere il file da inviare.
    Ok, se ti basta che lo stream inviato contenga solo i byte della immagine e poi chiudi il socket ... beh, va sicuramente bene come hai fatto.
    Quello a cui mi riferivo io prima è uno scenario abbastanza tipico ma più articolato in cui, sulla stessa connessione aperta con il socket, si vogliono veicolare più informazioni anche di tipo differente, es. più immagini e/o più stringhe e magari ricevere delle response di "status" dal destinatario. In questi scenari usare/stabilire un "protocollo" di comunicazione è fondamentale.

    First01 ha scritto:


    Adesso sul server devo ricevere l'immagine, ma una volta ricevuta come posso visualizzarla in un jFrame ?
    Devi far leggere e decodificare lo stream di byte della immagine da una API apposita dedicata alle immagini:
    - la classe javax.imageio.ImageIO (vedi i suoi read, c'è anche quello per un InputStream)
    - ImageIcon di Swing ma in questo scenario solo se hai già un byte[] completo con tutti i byte
    - ci sono anche i createImage di java.awt.Toolkit ma anche qui l'unico utile è quello che riceve il byte[] completo.
Devi accedere o registrarti per scrivere nel forum
3 risposte