A class of students are developing a program to send data between computers. Many computers are connected together to form a wired network. Serial ports are used to connect one computer to another.
Each computer:
- is assigned a unique three-digit ID
- has three ports, each identified by an integer value
- is connected to between one and three other computers.
Messages are sent between computers as a string of characters organised into fields as shown:
<STX><DestinationID><SourceID><Data><ETX>
| Field number | Field name | Description |
|---|
| n/a | STX | a single character marking the start of the message (ASCII value 02) |
| 1 | DestinationID | three numeric characters that identify the destination computer |
| 2 | SourceID | three numeric characters that identify the source computer |
| 3 | Data | a variable length string containing the data being sent (Minimum length is 1 character) |
| n/a | ETX | a single character marking the end of the message (ASCII value 03) |
For example, the following message contains the data "Hello Kevin" being sent from computer "101" to computer "232":
<STX>"232101Hello Kevin"<ETX>
Each computer will run a copy of the same program. Each program will contain a global variable, MyID of type string, that contains the unique ID of the computer in which the program is running.
The programmer has defined the first two program modules as follows:
| Module | Description |
|---|
Transmit() (already written) | - takes two parameters:
- a string containing a message - an integer containing a port number - transmits the message using the given port |
SendFile() | - takes three parameters:
- a string containing a text file name - a string containing a Destination ID - an integer containing a Port number - transmits the file one line at a time - transmits a final message with data string "**" |
One of the text files to be sent contains several blank lines (lines that do not contain any text).
(i) Explain why this is a problem.