Slide 10
Slide 10 text
What I made
func listenUDP(ctx context.Context,network string,laddr *UDPAddr) (*UDPConn,error){
fd, err := internetSocket(ctx,network,laddr,nil,syscall.SOCK_DGRAM,0,"listen")
-- snip --
net/udpsock_posix.go
func internetSocket(ctx context.Context, net string, laddr, raddr sockaddr, sotype,
proto int, mode string) (fd *netFD, err error) {
-- snip --
return socket(ctx, net, family, sotype, proto, ipv6only, laddr, raddr)
-- snip --
net/ipsock_posix.go
func socket(ctx context.Context, net string, family, sotype, proto int, ipv6only
bool, laddr, raddr sockaddr) (fd *netFD, err error) {
s, err := sysSocket(family, sotype, proto) // システムコールsocket()を呼んでいる
-- snip --
if err := fd.dial(ctx, laddr, raddr); // システムコールbind()を呼んでいる
net/sock_posix.go