2011-03-10 37 views
5

Im new to JAVAので、簡単に行ってください。クライアントからサーバーに画像を送信する

私は正常にお互いや他のものに接続できるサーバーとクライアントを持っていますが、クライアントの1つの機能は、サーバーに画像を送信することです。誰もがコードを提供することができますアプリ)。

+0

私はそれがWebアプリケーションではないことを理解しました。またはそれは? –

+0

私はJavaコードを持っています –

+0

どのような種類のクライアント/サーバーがありますか?ウェブサーバー?アプリケーション・サーバー?自己書かれた?インストールされていますか?より多くの情報pls。 –

答えて

5

ようこそJava!

手元にあるタスクを達成するには、ソケットを使用できます。

クライアントコード:

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(); 
} 

Serverコード:あなたは、クライアント上のsendfile()を呼び出す前に

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(); 
     } 
} 

なお、サーバーメソッドlistenForFileは、()が呼び出されなければなりません。また、serverPortは両側で同じでなければなりません。

+0

申し訳ありません、このコードは機能しません。画像はクライアントからサーバーに送信されますが、サーバーシステムには表示されません –

+0

パフォーマンスを向上させるために、BufferedOutputStream/BufferedInputStreamにラップしてください。 – Milde

+0

自己書込みサーバー –

関連する問題