Copyright ©  T. H. Merrett

308-420A                        Secondary Storage Algorithms and Data Structures

Assignment 1: study and run the following program. Do not hand this in.
(Put it in file asst1420.java
 Compile it by	javac asst1420.java
 Run it by	java asst1420
 Make sure your .login file contains the line
setenv CLASSPATH .:/course/cs420/java
)

/* assignment 1: read 11 records of tbook, using read/write with char */
import java.io.*;
public class asst1420
{ public static void main(String[] args)
  { byte[] tbookint = new byte[81];
    String wholeRec, name, address, phone;
    try
    { DataInputStream tbookd = new DataInputStream(new BufferedInputStream(
	new FileInputStream("/home/course/cs420/data/tbook"),891));
      for(int n=0; n<11; n++){
        tbookd.readFully(tbookint, 0, 81);
	wholeRec = byte2string(tbookint);
        name = wholeRec.substring(0,40);
        address = wholeRec.substring(40,73);
        phone = wholeRec.substring(73,80);
        System.out.println("name= " + name + ";\naddress= " + address +
			   ";phone= " + phone + ";");
      }
      tbookd.close();
    }
    catch(IOException e)
    { System.out.print("Error: " + e);
      System.exit(1);
    }
  }
  static String byte2string(byte[] b)
  { int i;
    String s="";
    for(i=0; i<b.length; i++)
      s = s + (char) b[i];
    return s;
  } // this function is also found in class bytechars
}

Assignment 1a (also not to hand in):

Replace the statement
	DataInputStream tbookd = new DataInputStream(new BufferedInputStream(
	new FileInputStream("/course/cs420/data/tbook"),891));
by the statements
	HostClient self= new HostClient("mimi");
	FileClient tbookd = new FileClient(self, "tbook", "SEQ", 81);
and compare the results.

You may get
	Error: java.net.ConnectException: Connection refused
If so, try
	cd ~cs420/java; java FileServer &
then cd back to where you were and try again.

How do the speeds compare between the two versions of the program?
Try running the second program on your own computer instead of on a SOCS
teaching machine (without first transferring the data file, "tbook").
You will need to copy and compile 
                /course/cs420/java/HostClient.java
in a suitable directory on your computer first.

Try
	telnet mimi 8187
from your machine and try to figure out what is happening. It will help
you to look at the source code in ~cs420/java/FileServer.java