0% found this document useful (0 votes)
34 views10 pages

Lab5

The document describes a Java program to implement a file transfer protocol using TCP sockets. It includes code for an FTP server and client. The FTP server code accepts connections, receives file names, and transfers files from the server to the client if the requested file exists. The client code connects to the server, requests files, and receives and saves files from the server. Running the code successfully transfers files between the server and client, implementing the core functions of a basic file transfer protocol.

Uploaded by

Subhiksha S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views10 pages

Lab5

The document describes a Java program to implement a file transfer protocol using TCP sockets. It includes code for an FTP server and client. The FTP server code accepts connections, receives file names, and transfers files from the server to the client if the requested file exists. The client code connects to the server, requests files, and receives and saves files from the server. Running the code successfully transfers files between the server and client, implementing the core functions of a basic file transfer protocol.

Uploaded by

Subhiksha S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Date: 22/9/2021

Implement - File Transfer Protocol using TCP Sockets

Aim

To write a java program to implement the file transfer protocol

Code

FTPServer

import java.net.*;

import java.io.*;

import java.util.*;

class FileTransfer

Socket soc;

ServerSocket ss;

DataInputStream din;

DataOutputStream dout;

String fname;

File recfile;

String filecon;

FileTransfer() throws Exception

ss=new ServerSocket(2700);

soc=ss.accept();

1
din=new DataInputStream(soc.getInputStream());

dout=new DataOutputStream(soc.getOutputStream());

void sendfile() throws Exception

Scanner in=new Scanner(System.in);

//dout.writeUTF("R");

//System.out.println("File Name :");

fname=din.readUTF();

System.out.println("File name

:"+fname); recfile=new File(fname);

if(recfile.exists())

dout.writeUTF("Y");

if((din.readUTF()).equalsIgnoreCase("Y"))

startsend();

else

else

System.out.println(" Not Found");

dout.writeUTF("N");

2
void startsend() throws Exception

String filecon;

FileInputStream fos=new FileInputStream(recfile);

int ch;

System.out.println("Transferring File......");

while(true)

ch=fos.read();

//ch=Integer.parseInt(filecon);

if(ch!=-1)

dout.writeUTF(String.valueOf(ch));

else break;

ss.close();

soc.close();

System.out.println("File Transferring Completed .");

public class FTPServer

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

FileTransfer fs=new FileTransfer();

3
fs.sendfile();

System.out.println("Disconnected .");

FTPClient

import java.net.*;

import java.io.*;

import java.util.*;

class FileTransfer

Socket soc;

DataInputStream din;

DataOutputStream dout;

String fname;

File recfile;

String filecon;

FileTransfer() throws Exception

soc=new Socket("127.0.0.1",2700);

din=new DataInputStream(soc.getInputStream());

dout=new DataOutputStream(soc.getOutputStream());

void rec_file() throws Exception

Scanner in=new Scanner(System.in);

//dout.writeUTF("R");

4
System.out.println("File Name :");

fname=in.nextLine();

dout.writeUTF(fname);

String server_msg=din.readUTF();

if(server_msg.equalsIgnoreCase("Y"))

recfile=new File(fname);

if(recfile.exists())

System.out.println("File Already exists.Want to replace?(Y/N)");

if((in.nextLine()).equalsIgnoreCase("Y"))

dout.writeUTF("Y"); startrec();

else

System.out.println("Want to give a new File name or exit ?(Y/N)");

if((in.nextLine()).equalsIgnoreCase("Y"))

System.out.println("Enter :");

String newname=in.nextLine();

recfile=new File(newname);

dout.writeUTF("Y");

startrec();

else

5
{

dout.writeUTF("N");

else

System.out.println(" Transferring File..."); startrec();

else

System.out.println("File not Found in Server");

void startrec()

try

String filecon;

FileOutputStream fos=new FileOutputStream(recfile); int

ch; System.out.println("Transferring File");

while(true)

filecon=din.readUTF(); ch=Integer.parseInt(filecon); if(ch!=-1)

6
fos.write(ch);

else break;

//ss.close();

soc.close();

System.out.println("File is Received .");

}catch(Exception x)

//ss.close();

//soc.close();

}}}

public class FTPClient

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

FileTransfer fs=new FileTransfer();

fs.rec_file();

System.out.println("FTP Session Ended .");

7
Output

Client

Server

Client

Server

Aim

To write a java program to implement the file transfer protocol.

Code:
FileTransferServer.java
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;

8
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class FileTransferServer {
public static void main(String[] args) throws Exception
{ ServerSocket ssock = new ServerSocket(5000);
Socket socket = ssock.accept();
InetAddress IA = InetAddress.getByName("localhost");
File file = new File("c:\\books\\sample.txt");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
OutputStream os = socket.getOutputStream();
byte[] contents;
long fileLength = file.length();
long current = 0;
long start = System.nanoTime();
while(current!=fileLength){
int size = 10000;
if(fileLength - current >= size)
current += size;
else{
size = (int)(fileLength - current); current = fileLength;
}
contents = new byte[size];
bis.read(contents, 0, size);
os.write(contents);
System.out.print("Sending file ... "+(current*100)/fileLength+"% complete!");}
os.flush();
socket.close();
ssock.close();
System.out.println("File sent succesfully!");
}}

9
FileTransferClient.java
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;

import java.io.InputStream;
import java.net.InetAddress;
import java.net.Socket;

public class FileTransferClient {


public static void main(String[] args) throws Exception{
Socket socket = new Socket(InetAddress.getByName("localhost"), 5000);
byte[] contents = new byte[10000];
FileOutputStream fos = new FileOutputStream("C:\\books\\cn_obs\\hello.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
InputStream is = socket.getInputStream();
int bytesRead = 0;
while((bytesRead=is.read(contents))!=-1)
bos.write(contents, 0, bytesRead);
bos.flush();
socket.close();
System.out.println("File saved successfully!");
}}
Output
Server

Client

Result
Thus , Implementation of File transfer Protocol was executed successfully and got the desired
output

10

You might also like