Distributed Computing System

Write Distributed Computing System (DCS) which will be able to find prime numbers in a given interval. DCS must consist of two programs – the client and the server. Both programs must communicate over TCP/IP network.

The server will be listening on port 2345 for the connection. This port can be changed by the user. The task is to find prime numbers between 0 and 231-1. User can also change the interval in which are the prime numbers searched in.

The server must have the ability to handle more than one connection at the same time. The user must be able to abort either program at any time. Both the client and the server must continuously show computation progress.

The connected client will request a new task from the server. Server will return a range to search for prime numbers (ie. 2000-2999). This range can't exceed 1000 numbers. Client will send results back to the server after completing computation and request another task.

At any given time the client can ask the server for a list of prime numbers in a given range.

Design and document appropriate system architecture and communication protocol. Documentation should be written as a plain text file or HTML file.


Your program and all its modules should be stored in the directory C:\ICP. Name the modules in such a way that the two first letters of its name are your number. You can precede this number by underscore or letter if your development language doesn't support module names starting with a number.

Write your starting number and a list of all used modules as a comment at the beginning of the program.

The permitted aid is an English vocabulary, books that describe programming language, its environment (IDE) and standard libraries. You are not allowed to use books with descriptions of various methods, algorithms and data structures.

You can get total of 100 points. 30 points are used for evaluating functionality, 30 for evaluating efficiency (smart and fast algorithms, sophisticated communication protocol). Last 40 points are used for documentation (explanation of communication protocol, notes about running and using your program, descriptions of algorithm, comments, naming convention, neat way of writing code).