For one school subject we made a presentation on grid computing. While my partner did the presentation and documentation, I did this demo application. It is a Mandelbrot fractal set visualization program. The interesting thing about this is, that it distributes the computation of the fractal. The application consists of two programs: the Viewer - provides user navigation through the fractal and displays the fractal. The Viewer also acts as a distributed computing server - it divides the screen into smaller parts, distributes the computation to many clients then gather and displays the results. The server opens a listening TCP socket wher clients connect.
The client connects to the server and requests a task. The server sends rectangle coordinates of a portion of the fractal to compute to the client. The client then begins computation. When the client is done it sends the result back to the server which immediately displays it.
This image shows how it works...
Distributed computation of the Mandelbrot fractal.
...and how it looks like...
Distributed Mandelbrot fractal Viewer (the server app).
Both the client (computer) and the server (viewer) were written in C++ and use pure WinAPI. The network communication client/server protocol is based on TCP sockets and was implemented using Winsock.