Mercurial > public > hey
changeset 5:45bac89a4da3
fix 'address already in use' before bind()
author | Dennis <dennisconcepcionmartin@gmail.com> |
---|---|
date | Tue, 18 Jul 2023 16:38:37 +0100 |
parents | 691358f944e8 |
children | e5e61ce70989 |
files | README.md src/main.c |
diffstat | 2 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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)
--- 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 <asm-generic/socket.h> #include <signal.h> #include <stdio.h> #include <stdlib.h> @@ -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);