FTPServer.java
import java.io.*;
import java.net.*;
/**********************************
* @author Rohit E Iyer
* @date 03/02/2012
*
* ACN Practical No.1
* Simulate FTP over TCP
*
* FTPServer.java
* *******************************/
class FTPServer
{
public static void main(String args[])throws IOException
{
int c;
String s,inp;
//CONNECTION ESTABLISHMENT PHASE
ServerSocket ss=new ServerSocket(5432);
System.out.println("***WAITING for SERVER***\n\n");
Socket soc=ss.accept();
//DATA TRANSFER PHASE
System.out.println(soc+" AND SERVER CONNECTED!!!");
DataInputStream i=new DataInputStream(soc.getInputStream());
DataOutputStream o=new DataOutputStream(soc.getOutputStream());
getFilelist(i,o);
inp=i.readUTF(); //readUTF reads in Unicode Text Format hence
FileInputStream fin = new FileInputStream("F:/"+inp);
System.out.println("GET MESSAGE RECEIVED for FILE: "+inp);
while((c=fin.read())!=-1)
{
o.write(c);
o.flush();
}
fin.close();
}
public static void getFilelist(DataInputStream din,DataOutputStream dout) throws IOException
{
int p=0;
File folder = new File("F:/");
File[] listOfFiles = folder.listFiles();
for (File listOfFile : listOfFiles)
//listFiles() returns both files as well as directories so display only Files
if (listOfFile.isFile())
{
p++;
}
dout.write(p);
dout.flush();
for (File listOfFile : listOfFiles)
if (listOfFile.isFile())
{
dout.writeUTF(listOfFile.getName());
dout.flush();
}
}
}
-----------------------------------------------------------------------------------------------
FTPClient.java
import java.io.*;
import java.net.*;
import java.util.*;
/**********************************
* @author Rohit E Iyer
* @date 03/02/2012
*
* ACN Practical No.1
* Simulate FTP over TCP
*
* FTPClient.java
* *******************************/
class FTPClient
{
public static void main(String args[])throws IOException
{
String list[]=new String[20];
int p=0,ch;
Socket s=new Socket(InetAddress.getByName("localhost"),5432);
System.out.println("CLIENT connected to SERVER at"+ s);
DataInputStream i=new DataInputStream(s.getInputStream());
DataOutputStream o=new DataOutputStream(s.getOutputStream());
ch=getFile(i,o,list);
FileOutputStream fout = new FileOutputStream("F:/Download/"+list[ch-1]);
try
{
System.out.println("Transferring FILE: "+list[ch-1]+"\n\n");
do
{
ch=i.read();
fout.write(ch);
}while(ch!=-1);
}
catch(SocketException e) //Exception indicates FILE TRANSFER complete.
{
System.out.println("***FILE TRANSFER COMPLETE***");
}
}
public static int getFile(DataInputStream din,DataOutputStream dout,String flist[]) throws IOException
{
Scanner src=new Scanner(System.in);
int i=0,ch=0;
System.out.println("***FILE-LIST from SERVER***\n\n");
ch=din.read();
for(i=0;i<ch;i++)
{
flist[i]=din.readUTF();
System.out.println((i+1)+". "+flist[i]);
}
System.out.println("Enter File to be Requested");
ch=src.nextInt();
dout.writeUTF(flist[(ch-1)]);
dout.flush();
return (ch);
}
}

can u mail me all acn practicals reytom15@gmail.com
ReplyDeletethanks rohit
ReplyDelete