Elevator Pitch
Imagine you want to start an HTTP server without specifying the port. For example, a temporary server for testing. How do you do that? I’ll give you a way to implement this design and a clear understanding of what Go does inside the net package.
Description
Imagine you want to start an HTTP server without specifying the port. For example, a temporary server for testing. How do you do that?
The answer is straightforward. Specify the port number to 0 like:
l, err := net.Listen("tcp", ":0")
It’s an easy rule provided by the net package, but do you understand how Go binds a random port allocation. I’ll give you a clear understanding of what Go does inside the net package.
The presentation contains the following topics.
- net, net/http packages
- File descriptor
- TCP, UDP
- System calls
I think this presentation will give audiences not only a knowledge of Go, but also one of system calls.
Notes
The content of this proposal was already published on dev.to.
https://dev.to/hgsgtk/how-go-handles-network-and-system-calls-when-tcp-server-1nbd