Relevant Skills — C; Socket programming; WSL; Linux; TCP/IP; Networking; Protocol design;
A pair of CLI (command line interface) programs to facilitate text communications between two users. One program acts as the server (the host of the chat) while the other is the client (the one who connects to the host). They communicate via TCP/IP - using C socket programming libraries for Linux.
Further details:
I developed my own simple protocol, including error checking and the use of message headers, to prevent conflicts and ensure that at any given time, only one user can send a message while the other is on the receiving end.
In my demonstration, both the client and the server are running on two separate Windows machines, additionally running on WSL (Windows Subsystem for Linux). To allow them to communicate over LAN, I had to set up port proxies in Powershell to redirect connections accordingly.