由于一开始找不到准确的资料,导致我想直接转用C语言来编写。后面终于,终于找到一个讨论这个问题的帖子:https://stackoverflow.com/questions/22955226/unix-domain-socket-name-in-go-language。由此我们可知,在golang中,Unix Socket有三种传输方式:unix、unixgram、unixpacket,分别对应SOCK_STREAM、SOCK_DGRAM、SOCK_SEQPACKET,前两种也称为TCP和UDP,第三种我没搞懂,也用不上,有兴趣的自己查一下。

而我需要的就是,使用本地Unix Socket的UDP协议来与另一个进程通信。一开始我只知道unix,发现死活连不上,提示协议错误。后来我又把协议改成udp,还是不行。

(此处省略1万字口吐芬芳)

最后,那个帖子点醒了我,然后我就把协议改成unixgram,居然成了,就这?

这件事情告诉我们,学会查资料是多么的重要……