FTP client server model for file transfer in Java

烈酒焚心 提交于 2019-11-28 11:48:10

The answer to the above question is :

FTP Client :

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class FileClient {
    public static void main(String[] args) throws Exception {

        long start = System.currentTimeMillis();

        // localhost for testing
        Socket sock = new Socket("127.0.0.1", 13267);
        System.out.println("Connecting...");
        InputStream is = sock.getInputStream();
        // receive file
        new FileClient().receiveFile(is);
        OutputStream os = sock.getOutputStream();
        //new FileClient().send(os);
        long end = System.currentTimeMillis();
        System.out.println(end - start);

        sock.close();
    }


    public void send(OutputStream os) throws Exception {
        // sendfile
        File myFile = new File("/home/nilesh/opt/eclipse/about.html");
        byte[] mybytearray = new byte[(int) myFile.length() + 1];
        FileInputStream fis = new FileInputStream(myFile);
        BufferedInputStream bis = new BufferedInputStream(fis);
        bis.read(mybytearray, 0, mybytearray.length);
        System.out.println("Sending...");
        os.write(mybytearray, 0, mybytearray.length);
        os.flush();
    }

    public void receiveFile(InputStream is) throws Exception {
        int filesize = 6022386;
        int bytesRead;
        int current = 0;
        byte[] mybytearray = new byte[filesize];

        FileOutputStream fos = new FileOutputStream("def");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        bytesRead = is.read(mybytearray, 0, mybytearray.length);
        current = bytesRead;

        do {
            bytesRead = is.read(mybytearray, current,
                    (mybytearray.length - current));
            if (bytesRead >= 0)
                current += bytesRead;
        } while (bytesRead > -1);

        bos.write(mybytearray, 0, current);
        bos.flush();
        bos.close();
    }
} 

FTP Server :

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class FileServer {
    public static void main(String[] args) throws Exception {
        // create socket
        ServerSocket servsock = new ServerSocket(13267);
        while (true) {
            System.out.println("Waiting...");

            Socket sock = servsock.accept();
            System.out.println("Accepted connection : " + sock);
            OutputStream os = sock.getOutputStream();
            //new FileServer().send(os);
            InputStream is = sock.getInputStream();
            new FileServer().receiveFile(is);
            sock.close();
        }
    }

    public void send(OutputStream os) throws Exception {
        // sendfile
        File myFile = new File("/home/nilesh/opt/eclipse/about.html");
        byte[] mybytearray = new byte[(int) myFile.length() + 1];
        FileInputStream fis = new FileInputStream(myFile);
        BufferedInputStream bis = new BufferedInputStream(fis);
        bis.read(mybytearray, 0, mybytearray.length);
        System.out.println("Sending...");
        os.write(mybytearray, 0, mybytearray.length);
        os.flush();
    }

    public void receiveFile(InputStream is) throws Exception {
        int filesize = 6022386;
        int bytesRead;
        int current = 0;
        byte[] mybytearray = new byte[filesize];

        FileOutputStream fos = new FileOutputStream("def");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        bytesRead = is.read(mybytearray, 0, mybytearray.length);
        current = bytesRead;

        do {
            bytesRead = is.read(mybytearray, current,
                    (mybytearray.length - current));
            if (bytesRead >= 0)
                current += bytesRead;
        } while (bytesRead > -1);

        bos.write(mybytearray, 0, current);
        bos.flush();
        bos.close();
    }
} 
rmvivek arani

>

Server side

import java.io.*;

import java.net.*;

class serversvi

{

public static void main(String svi[])throws IOException

{

try

{

ServerSocket servsock=new ServerSocket(105);

DataInputStream dis=new DataInputStream(System.in);

System.out.println("enter the file name");

String fil=dis.readLine();

System.out.println(fil+" :is file transfer");

File myfile=new File(fil);

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

}

}


catch(Exception saranvi)

{

System.out.print(saranvi);

}

}

}

> 

Client side:

import java.io.*;

import java.net.*;

class clientsvi

{

public static void main(String svi[])throws IOException

{

try

{

Socket sock=new Socket("localhost",105);

byte[] bytearray=new byte[1024];

InputStream is=sock.getInputStream();

DataInputStream dis=new DataInputStream(System.in);

System.out.println("enter the file name");

String fil=dis.readLine();

FileOutputStream fos=new FileOutputStream(fil);

BufferedOutputStream bos=new  BufferedOutputStream(fos);

int bytesread=is.read(bytearray,0,bytearray.length);

bos.write(bytearray,0,bytesread);

System.out.println("out.txt file is received");

bos.close();

sock.close();

}

catch(Exception SVI)

{

System.out.print(SVI);

}

}

}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!