Networking Tips (1)

· 194 words · 1 minute read

The Port 0 Trick 🔗

经常在 go 的网络库测试代码中,看见如下片段:

ln, err := Listen("tcp", "127.0.0.1:0")
if err != nil {
        t.Fatal(err)
}

绑定 0 号套接字端口时,操作系统会自动分配一个 1024 号以上某个可用端口。WindowsLinux 都支持这种用法。

The ‘\0’ Trick 🔗

Linux 对 Unix Domain Socket 有个扩展,叫 Abstract Socket Namespace。当创建的 Unix 本地套接字的路径名的起始字节为 \0 时,该套接字文件不会存放在文件系统,比较方便。这种套接字用 netstat 显示时以 @ 打头。

$ netstat -nl | grep @
unix  2      [ ACC ]     STREAM     LISTENING     19729    @/tmp/dbus-tENgH5neni
...
comments powered by Disqus