ソケットを介してファイルを送信する

Javaでソケット経由でファイルを送信する方法はありますか?もしそうなら、どのように?そうでない場合、Javaを使用してあるコンピュータから別のコンピュータにファイルを送信する方法はありますか?

0

5 答え

ソケット接続を開き、ファイルバイトをソケットにコピーし、ソケットのもう一方の端からバイトを読み込みます。 任意のストリームをソケット接続経由で送信するのと同じ方法です。それは共有されたファイルシステムにコピーすること、ファイルをftpingすること、ウェブサーバーにファイルをポストすることを含む(javaを使用して)あるコンピュータから別のコンピュータにファイルをコピーする方法はいくつかあります...

4
追加された

クライアント - サーバーアーキテクチャは、あなたが望むものを達成するのに最適です。

最初のコンピュータで FileServer を起動し、2番目のファイルで FileClient を実行します。

ソケット経由でファイルを送信する

1
追加された
import java.io.BufferedInputStream;



import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class Main
 {

 public static void main(String[] args) throws IOException {

 ServerSocket servsock = new ServerSocket(123456);

File myFile = new File("s.pdf");

while (true)
 {

  Socket sock = servsock.accept();

   byte[] mybytearray = new byte[(int) myFile.length()];

   BufferedInputStream bis = new BufferedInputStream(new FileInputStream(myFile));

  bis.read(mybytearray, 0, mybytearray.length);

   OutputStream os = sock.getOutputStream();

   os.write(mybytearray, 0, mybytearray.length);

     os.flush();

    sock.close();

  }

 }

}

The client module


import java.io.BufferedOutputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.net.Socket;

public class Main {

public static void main(String[] argv) throws Exception
 {

 Socket sock = new Socket("127.0.0.1", 123456);

 byte[] mybytearray = new byte[1024];

 InputStream is = sock.getInputStream();

 FileOutputStream fos = new FileOutputStream("s.pdf");

  BufferedOutputStream bos = new BufferedOutputStream(fos);

   int bytesRead = is.read(mybytearray, 0, mybytearray.length);

 bos.write(mybytearray, 0, bytesRead);

   bos.close();

   sock.close();

  }

}
1
追加された

あるコンピュータから別のコンピュータにファイルを送信することに一番注意が払われている場合。独自のプロトコルを使用して独自のファイルサーバーとクライアントを構築するのではなく、 ftp-server を組み込むことができますあなた自身のJavaアプリケーション内のクライアント側の ftpクライアントを使用してください。

0
追加された
0
追加された