# HG changeset patch # User Dennis # Date 1691775632 0 # Node ID 38d2aa61bcbce7bf9a7277e8ca84769cf39e8643 # Parent 07f578438b0f6627705d5fb9a64ba221d4529629 Change info files diff -r 07f578438b0f -r 38d2aa61bcbc DOCS.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS.md Fri Aug 11 17:40:32 2023 +0000 @@ -0,0 +1,31 @@ + +# Table of Contents + +1. [Usage](#org6a0ed95) +2. [What could you do next?](#orgb192b61) + + + + +# Usage + +Make sure you have Docker installed + + ./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 interested: + +- Run `docker logs --follow hey-server-1` in another terminal. Doing that you can see the messages arriving 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 could you 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`. + diff -r 07f578438b0f -r 38d2aa61bcbc LICENSE.md --- a/LICENSE.md Fri Jul 21 10:15:34 2023 +0100 +++ b/LICENSE.md Fri Aug 11 17:40:32 2023 +0000 @@ -19,3 +19,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff -r 07f578438b0f -r 38d2aa61bcbc README.md --- a/README.md Fri Jul 21 10:15:34 2023 +0100 +++ b/README.md Fri Aug 11 17:40:32 2023 +0000 @@ -1,34 +1,22 @@ -# Hey! - -Hey! is a simple TCP streaming app. - -## Usage -Make sure you have Docker installed. +# hey -```bash -./run.sh -``` +Hey! is a simple TCP streaming app developed in C using POSIX APIs. Both client and server are containerized using Docker. I've made a video about this project -> [Youtube](https://youtu.be/r3CQ0euv6TQ). -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`. +- Docs: +- Main repo on SourceHut: + - Mirrors: + - Github: + - Gitlab: -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 could you 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) -- [Beej's Guide to Network Programming](https://beej.us/guide/bgnet/html/split/index.html) -- [How does port number really work](https://stackoverflow.com/questions/13190176/how-does-port-number-really-work-in-tcp/29045432#29045432) + +- [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) +- [Beej's guide to network programming](https://beej.us/guide/bgnet/html/split/index.html) +- [How does port numbers really work?](https://stackoverflow.com/questions/13190176/how-does-port-number-really-work-in-tcp/29045432#29045432) +