- Adding reuse address to the socket
- Refactoring initialization in main
- Const, const everywhere