英文:
How can write a poll or epoll server in Golang?
问题
在Golang中,如果我们想要编写一个socket服务器,可以像这样编写:
listen, err := net.Listen("tcp", "****")
for {
conn, err := listen.Accept()
...
}
net.Listen()
包括创建 socket
、bind
、listen
操作,并在实现中使用了 epoll
。
在C++中,如果我们想要编写一个服务器,可以自由选择使用 select
、poll
或 epoll
,所以我的问题是:在Golang中,如何使用 select
或 poll
而不是 epoll
来编写服务器。
英文:
In Golang, if we want to write a socket server, we can write like this :
listen, err := net.Listen("tcp", "****")
for {
conn, err := listen.Accept()
...
}
net.Listen()
include create socket
, bind
, listen
, and uses epoll
in implementation.
in CPP, if we want to write a server, we can chose to use select
, poll
or epoll
freely , so my question is: in Golang, how can I write a server using select
or poll
instead of `epoll.
答案1
得分: 1
如果你熟悉连接创建过程中使用的系统调用,你会发现 syscalls package 对你所需的工作非常有用,你可以根据需要选择使用这些系统调用。它包含了你所需的所有系统调用。
我还找到了这个示例 gist,你可以参考它来使用 poll 或 select 进行自己的实现。
英文:
If you are familiar with system calls used during connection creation; you will find the syscalls package useful for what you need to do where you can choose to use these system calls as you need. It consists of all the system calls you will need.
I also found this example gist which you can reference for making your own implementation using poll or select.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论