2011-03-10 10 views
5

Jestem nowy w JAVA, więc proszę bardzo.Wysyłanie obrazu z klienta na serwer

Mam serwer i klienta, który może z powodzeniem łączyć się ze sobą i innymi rzeczami, ale jedną z funkcji klienta jest wysłanie obrazu do serwera. Każdy może podać kod dla tego (w java, nie w sieci aplikacja).

+0

Rozumiem, że to nie jest aplikacja internetowa. Albo to jest? –

+0

Chcę kod Java –

+0

Jakiego rodzaju klient/serwer masz? Serwer internetowy? Serwer aplikacji? Własny napisany? Zainstalowany? Więcej informacji pls. –

Odpowiedz

5

Witamy w Javie!

Aby wykonać swoje zadanie, możesz skorzystać z gniazd.

kod Klient:

function sendFile (String serverIp, int serverPort) { 
    int i; 
    FileInputStream fis = new FileInputStream ("/path/to/your/image.jpg"); 

    Socket sock = new Socket(serverIp, serverPort); 
    DataOutputStream os = new DataOutputStream(sock.getOutputStream()); 
    while ((i = fis.read()) > -1) 
     os.write(i); 

    fis.close(); 
    os.close(); 
    sock.close(); 
} 

kod serwera:

function listenForFile(int port) { 
    ServerSocket socket = new ServerSocket(serverPort); 
     while (true) { 

      Socket clientSocket = socket.accept(); 

      DataInputStream dis = new DataInputStream(clientSocket.getInputStream()); 
      FileOutputStream fout = new FileOutputStream("/path/to/store/image.jpg"); 
      int i; 
      while ((i = dis.read()) > -1) { 
       fout.write(i); 
      } 

      fout.flush(); 
      fout.close(); 
      dis.close(); 
      clientSocket.close(); 
     } 
} 

Należy zauważyć, że metoda serwer listenForFile() musi być wywołana przed wywołaniem Sendfile() na kliencie. Serwer musi być taki sam po obu stronach.

+0

Niestety ten kod nie działa. Wysyła obraz z klienta do serwera, ale nie można go zobaczyć w systemie serwera. –

+0

Owiń go w BufferedOutputStream/BufferedInputStream dla lepszej wydajności. – Milde

+0

Samo napisany serwer –

Powiązane problemy