Networking & Chatter program

This project is my first attempt at creating a program solely focussed on networking.
I wanted to create a console program with which I could learn about sockets and networking, and choose to make a messaging program.
This program connects to a master server, the user can then connect to an already existing (chat)room or create a new one and start talking to other people.

The client can send 2 types of packages, Requests and RPC's:
-RPC: Package that will be forwarded to other people specified in the package (for example: PostChatMessage, to all people in this room).
-Request: Package that the server will process, create a response to and return it to the requester. (for example: ConnectToRoom, or DisconnectFromRoom).

Server

A central point that all clients (users) speak to.

Users can send a request or an RPC to the server, the server then processes it and preforms the neccessary action.
The server manages all rooms that users can connect to.

Client.

The program on the user's device.


The client can connect to the server at any time, before it has connected to a room it can send requests to find and join rooms.
When the client has connected to a room it can send RPC's to other clients in that room (via the server).
The client will also listen for incoming RPC's so it can execute them.

The chatter in action.

A video of me and 2 friends (Tom and Daniel) showcasing the Chatter in action, the video displays:
-Starting the server.
-Connecting with my own client, then creating a room.
-Tom joins the room.
-We talk.
-Daniel joins the room
-We talk more.
-I demonstrate how leaving and connecting to a room works.
-We talk, and then leave.

Download

Download the Chatter client.

Platform: Windows