This project would enable a user to share the real-time contents and actions of their computer screen with any remote user or group of users. This application will be a client / server application capable of working over the internet. The project will require the creation of a client that would run on a PC and a server that would run as a service. The communication between the clients and the server will be TCP/IP.
The user sharing their screen displays real-time will be called “moderators”; the users viewing the moderator’s screens remotely will be called “participants”. There will always only be one moderator and any number (within reason) of participants per session. The moderator will be able to perform some action on his screen, such as moving his mouse, which will then be dynamically transmitted to the server. The participants, connected to the same server, would simultaneously receive the moderator changes, resulting in an updated view of the moderator’s computer screen. In short, the participants will be watching a “movie” of the contents and actions of the moderator’s screen.
A user would use the client to connect to the server. The first user would be the moderator and would start a session. Subsequent users would connect to the server to view the contents and actions of the moderators computer screen.
This client (for both the moderator and the participants) will communicate with the server using TCP/IP. The server will need to be able to accept multiple connections (multi-threaded) from each client. The client communications logic will need to be located in a different thread from the client display logic.