英文:
golang accept on already opened fd
问题
我有一个守护进程,它监听一个特定的Unix域套接字文件。在某个时刻,它会生成一个子进程,该子进程应该继续监听同一个套接字文件,而不是打开一个新的并覆盖旧的。我需要一个能够监听特定文件描述符(FD)的方法。在C语言中,可以使用accept()函数来实现:
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
请给予建议。
英文:
I have a daemon that listens on a specific unix domain socket file. At some point it spawns a child which should continue listen on the same socket file without open a new one and overwriting the old one. I need a method that listen on a specific FD. In C it can be done with accept():
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
Please advise.
答案1
得分: 2
net.FileListener
用于将文件描述符转换为 net.Listener
。
f := os.NewFile(sockfd, "from parent")
l, err := net.FileListener(f)
if err != nil {
log.Fatal(err)
}
英文:
net.FileListener
is used to turn a file descriptor into a net.Listener
f := os.NewFile(sockfd, "from parent")
l, err := net.FileListener(f)
if err != nil {
log.Fatal(err)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论