YEDITEPE UNIVERSITY

ICS 471 DATA COMMUNICATION AND COMPUTER NETWORKS

SPRING 2002

ASSIGNMENT I

(Data Frame Transfers)

In this assignment you will enhance the concept of data frames that has been introduced to you with the workshop on asynchronous serial port programming. The overall implementation is about a file transfer program that allows two users on two different computers to send files to each other by making use of two connected PCs on their serial ports.

In the implementation, a frame format must be specified and used, and each node should be capable of transmitting and receiving files. GUI design is not restrictive but should at least provide users a reasonable interface to select and send files to other party. Also users should be notified of a possible reception of a file. Your program have to let the user choose and send a file while he/she is receiving a file currently. (A clever design of concurrency is required!)

The code you write will be suitable to be compiled on both Turbo C/DOS, and gcc/Linux environment and the one and only difference will be on a function you write, say it send_one_byte(). This function sends one byte to the appropriate serial port and rest of your code will interact with the serial port via this function. The DOS port of your code will make use of serial port as you know (by outport/inport functions), the Linux port of your code will make use of serial port as you will search-and-find (The Serial HOWTO on the course web page will be helpful). There will not be two different C files for two different platforms, but you will define send_one_byte() function two times by using #ifdef and #endif preprocessor directives. You will have to cross-check your code on two different platforms.

As you implement an abstract send_one_byte()function, your code on upper layer (the part that breaks the file into your frames and then sends them) will be independent of the lower layer (the part that deals with the serial port)

Due date for this assignment is Apr. 19th , 2002 and submitters will schedule for a demo of the assignment on Apr. 22nd , 2002. All students will work individually and a formal report will be submitted together with a working and commented code.

Mesut Ali Ergin