Адпраўка файлаў праз сокеты

Ці ёсць спосаб, каб адправіць файл праз сокеты ў Java? Калі так, то як? Калі няма, то як адзін абступеце адпраўкі файла з аднаго кампутара на іншы з дапамогай Java?

0

5 адказы

вы адкрыеце сокет-злучэнне і скапіяваць файл байт у гняздо і прачытаць байты з іншага канца гнязда. гэтак жа, як вы адправіце любы паток праз сокет-злучэнне. што сказаў, што ёсць мноства спосабаў, каб скапіяваць файл з аднаго кампутара на іншы (з дапамогай Java), у тым ліку капіраванне да агульнай файлавай сістэме, па пратаколе FTP файл, HTTP размясціць файл на вэб-сервер ...

4
дададзена

Архітэктура кліент-сервер з'яўляецца найбольш прыдатным для дасягнення таго, што вы хочаце.

Пачатак FileServer на першым кампутары і запусціць 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-сервер на боку сервера і FTP-кліент на баку кліента ў вашых уласных прыкладанняў Java.

0
дададзена
0
дададзена