# HG changeset patch # User Dennis # Date 1689930612 -3600 # Node ID f6fc13a3fe88e2f13d240ab4a04d05f3330eba04 # Parent 924e9a51321674425ef5effacbf023a72c613e1c update readme diff -r 924e9a513216 -r f6fc13a3fe88 README.md --- a/README.md Thu Jul 20 19:36:43 2023 +0100 +++ b/README.md Fri Jul 21 10:10:12 2023 +0100 @@ -1,9 +1,32 @@ # Hey! -Right now, Hey! is a TCP server-client app. It helps me to learn about networking. +Hey! is a simple TCP streaming app. + +## Usage + +Make sure you have Docker installed. + +```bash +./run.sh +``` + +Using docker compose, this script build the Docker images (server and client), create a user-defined bridge network, and run both containers. +After that, you will be provided with the client shell to send messages to the server. + +To close the connection type `exit` from the client shell and press `ENTER`. + +Some things that I find interesting: +- Run `docker logs --follow hey-server-1` in another terminal. Doing that you can see the messages arrive at the server. +- If you have Wireshark installed you can use it to sniff the packets sent in the Docker network. This is good to understand TCP. + +## What you could do next? + +A good exercise will be to implement logic for some commands in the server. For example, you could program the server to send to the client the current +date every time the server receives the command `date`. ## References +This is the material I used to develop Hey!. The Beej's Guide to Network Programming is a nice introduction. Super easy to read: - [What is a web server](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_web_server) - [HTTP Protocol](https://www.rfc-editor.org/rfc/pdfrfc/rfc7231.txt.pdf) - [Socket programming Oracle](https://docs.oracle.com/cd/E19253-01/817-4415/6mjum5som/index.html) diff -r 924e9a513216 -r f6fc13a3fe88 run.sh --- a/run.sh Thu Jul 20 19:36:43 2023 +0100 +++ b/run.sh Fri Jul 21 10:10:12 2023 +0100 @@ -3,8 +3,6 @@ sudo docker compose build sudo docker compose up -d -#!/bin/bash - rectangle=" +----------------------+ | |