comparison README.md @ 14:f6fc13a3fe88

update readme
author Dennis <dennisconcepcionmartin@gmail.com>
date Fri, 21 Jul 2023 10:10:12 +0100
parents dc97a1196f45
children 07f578438b0f
comparison
equal deleted inserted replaced
13:924e9a513216 14:f6fc13a3fe88
1 # Hey! 1 # Hey!
2 2
3 Right now, Hey! is a TCP server-client app. It helps me to learn about networking. 3 Hey! is a simple TCP streaming app.
4
5 ## Usage
6
7 Make sure you have Docker installed.
8
9 ```bash
10 ./run.sh
11 ```
12
13 Using docker compose, this script build the Docker images (server and client), create a user-defined bridge network, and run both containers.
14 After that, you will be provided with the client shell to send messages to the server.
15
16 To close the connection type `exit` from the client shell and press `ENTER`.
17
18 Some things that I find interesting:
19 - Run `docker logs --follow hey-server-1` in another terminal. Doing that you can see the messages arrive at the server.
20 - If you have Wireshark installed you can use it to sniff the packets sent in the Docker network. This is good to understand TCP.
21
22 ## What you could do next?
23
24 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
25 date every time the server receives the command `date`.
4 26
5 ## References 27 ## References
6 28
29 This is the material I used to develop Hey!. The Beej's Guide to Network Programming is a nice introduction. Super easy to read:
7 - [What is a web server](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_web_server) 30 - [What is a web server](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_web_server)
8 - [HTTP Protocol](https://www.rfc-editor.org/rfc/pdfrfc/rfc7231.txt.pdf) 31 - [HTTP Protocol](https://www.rfc-editor.org/rfc/pdfrfc/rfc7231.txt.pdf)
9 - [Socket programming Oracle](https://docs.oracle.com/cd/E19253-01/817-4415/6mjum5som/index.html) 32 - [Socket programming Oracle](https://docs.oracle.com/cd/E19253-01/817-4415/6mjum5som/index.html)
10 - [Beej's Guide to Network Programming](https://beej.us/guide/bgnet/html/split/index.html) 33 - [Beej's Guide to Network Programming](https://beej.us/guide/bgnet/html/split/index.html)
11 - [How does port number really work](https://stackoverflow.com/questions/13190176/how-does-port-number-really-work-in-tcp/29045432#29045432) 34 - [How does port number really work](https://stackoverflow.com/questions/13190176/how-does-port-number-really-work-in-tcp/29045432#29045432)