File

Server

import java.net.*;

import java.io.*;

public class FileServer {

public static void main (String [] args ) throws IOException {

// create socket

ServerSocket servsock = new ServerSocket(13267);

while (true) {

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

Socket sock = servsock.accept();

System.out.println("Accepted connection : " + sock);

// sendfile

File myFile = new File ("source.pdf");

byte [ ] mybytearray = new byte [(int)myFile.length()];

FileInputStream fis = new FileInputStream(myFile);

BufferedInputStream bis = new BufferedInputStream(fis);

bis.read(mybytearray,0,mybytearray.length);

OutputStream os = sock.getOutputStream();

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

os.write(mybytearray,0,mybytearray.length);

os.flush();

sock.close();

}

}

}

Client

import java.net.*;

import java.io.*;

public class FileClient{

public static void main (String [] args ) throws IOException {

int filesize=6022386; // filesize temporary hardcoded

long start = System.currentTimeMillis();

int bytesRead;

int current = 0;

Socket sock = new Socket("127.0.0.1",13267);

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

// receive file

byte [ ] mybytearray = new byte [filesize];

InputStream is = sock.getInputStream();

FileOutputStream fos = new FileOutputStream("source-copy.pdf");

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

long end = System.currentTimeMillis();

System.out.println(end-start);

bos.close();

sock.close();

}

}