# HG changeset patch # User Dennis # Date 1689694717 -3600 # Node ID 45bac89a4da30694a32f0cf1bd53836daaee06c0 # Parent 691358f944e8d14bca2004a3b5c5f312a72741e1 fix 'address already in use' before bind() diff -r 691358f944e8 -r 45bac89a4da3 README.md --- a/README.md Tue Jul 18 12:04:37 2023 +0100 +++ b/README.md Tue Jul 18 16:38:37 2023 +0100 @@ -8,3 +8,4 @@ - [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) diff -r 691358f944e8 -r 45bac89a4da3 src/main.c --- a/src/main.c Tue Jul 18 12:04:37 2023 +0100 +++ b/src/main.c Tue Jul 18 16:38:37 2023 +0100 @@ -1,3 +1,4 @@ +#include #include #include #include @@ -47,6 +48,10 @@ exit(1); } + // Reuse + int yes = 1; + setsockopt(socketfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)); + if (bind(socketfd, servinfo->ai_addr, servinfo->ai_addrlen) == -1) { perror("bind: "); exit(1);