The communication steps are the following:
1) The client (Node 1) sends a search request to the **B**road**C**ast **S**erver with the desired filename. The request contains the complete filename *(filename followed by extension)*.
2) **BCS** broadcasts (sends all) this search request, using UDP, to all servers.
3) Every server, upon receiving the request, searches to see if it has the requested file in a predefined local directory. If it hasn’t the file, it does nothing. If one of the servers has the requested file (exact match) inside its local directory, it sends UDP reply directly to the client. The response contains a port number for the client to download the file.
4) Upon receiving this reply, indicating that the replying server has the requested file, the client requests a TCP connection with the port specified by the server.
5) The server accepts the new TCP connection with the client, through which it will send the requested file.
The client, the servers and the BroadCast Server are all different processes that may run either on the same, or in different machines.
Each server searches its local directory to check if it has the requested file. If such file is identified, the server (e.g., Sn) will send a response datagram with its IP address, as well as a TCP port through which the files can be downloaded. The response will go directly to the client, and not through BCS. In the first 3 steps UDP datagrams are going to be used. In the 4th and 5th steps only TCP packets will be used.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request.
3) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).
must run in unix in C language