Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.OutputStream;
- import java.io.File;
- import java.net.Socket;
- public class FileSender {
- public void main(Socket socket,String[] args) {
- try {
- OutputStream os = socket.getOutputStream();
- int cnt_files = args.length;
- // How many files?
- ByteStream.toStream(os, cnt_files);
- for (int cur_file=0; cur_file<cnt_files; cur_file++) {
- ByteStream.toStream(os, new File(args[cur_file]).getName());
- ByteStream.toStream(os, new File(args[cur_file]));
- }
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- import java.io.File;
- import java.io.InputStream;
- import java.net.Socket;
- public class FileReceiver {
- public void main(Socket socket,String arg) {
- try {
- InputStream in = socket.getInputStream();
- int nof_files = ByteStream.toInt(in);
- System.out.println("reach 1 "+ nof_files);
- for (int cur_file=0;cur_file < nof_files; cur_file++) {
- String file_name = ByteStream.toString(in);
- File file=new File(arg+file_name);
- System.out.println("Received path is : "+file);
- ByteStream.toFile(in, file);
- }
- }
- catch (java.lang.Exception ex) {
- ex.printStackTrace(System.out);
- }
- }
- }
- import java.io.*;
- import java.net.*;
- public class ClientFile implements Runnable{
- Socket clientsocket;
- public void run() {
- try
- {
- clientsocket = new Socket("219.64.189.14",6789);
- // Some code
- copy(outtoserver,infromserver, files); // files contains the path of files to be transferred.
- // Some code
- clientsocket.close();
- }
- catch(Exception e2)
- {
- System.out.println("ClientFile "+String.valueOf(e2) + "n");
- }
- }
- public void copy(DataOutputStream outtoserver,BufferedReader infromserver,String[] files)
- {
- try
- {
- FileSender fs = new FileSender();
- int totalfiles=0;
- int r=0;
- File oldfile;
- outtoserver.write(files.length);
- String chk;
- while(totalfiles<files.length)
- {
- oldfile = new File(files[totalfiles]);
- if(oldfile.isDirectory())
- {
- outtoserver.writeBytes("foldern");
- File folder1[] = oldfile.listFiles();
- String[] folder = new String[folder1.length];
- int count=0;
- for(File name : folder1)
- {
- folder[count] = name + "";
- System.out.println(folder[count]);
- count++;
- }
- outtoserver.writeBytes(oldfile.getName()+"n");
- fs.main(clientsocket, folder);
- }
- else if(oldfile.isFile())
- {
- outtoserver.writeBytes("filen");
- chk = infromserver.readLine();
- if(chk.equals("send"))
- {
- outtoserver.writeBytes(oldfile.getName()+"n");
- String[] folder = new String[]{oldfile.getAbsolutePath()};
- fs.main(clientsocket, folder);
- }
- totalfiles++;
- outtoserver.flush();
- }
- }
- }
- catch(Exception e)
- {
- System.out.println("ClientFile -->> "+e.toString());
- }
- }
- }
- import java.io.*;
- import java.net.*;
- import javax.swing.*;
- class ServerFile implements Runnable {
- Socket conn;
- public ServerFile(Socket a)
- {
- conn = a;
- }
- public void run() {
- File file1;
- String clientsen="";
- try
- { // Some code
- copy(outtoclient,infromclient,file1.getAbsolutePath()); //file1 is the directory to which the file has to stored.
- // some code
- }
- catch(Exception e0)
- {
- System.out.println("ServerFile "+String.valueOf(e0)+"n"+e0.getCause());
- }
- }//end main
- public void copy(DataOutputStream outtoclient,BufferedReader infromclient,String basepath)
- {
- try
- {
- FileReceiver fr = new FileReceiver();
- int totfiles = infromclient.read();
- int tot=0;
- File file;
- String path = null,chk;
- while(tot<totfiles)
- {
- chk = infromclient.readLine();
- if(chk.equals("file"))
- {
- outtoclient.writeBytes("sendn");
- path = infromclient.readLine();
- path = basepath+File.separator+path;
- file=new File(path);
- fr.main(conn, basepath+File.separator);
- }
- else if(chk.equals("folder"))
- {
- String name = infromclient.readLine();
- name = basepath+File.separator+name;
- new File(name).mkdir();
- fr.main(conn, name+File.separator);
- }
- tot++;
- }
- }
- catch(Exception e)
- {
- System.out.println("Server file: "+e.toString());
- }
- }
- }//end class
- ByteStream.toStream(os, "file")
- ByteStream.toString(in)
Add Comment
Please, Sign In to add comment