Erlang 中的 Java SocketChannel 等效项
是否有与 Java SocketChannel 类等效的 Erlang 类?需要能够使用一个 Erlang 进程处理多个客户端套接字连接。
谢谢!
Is there an Erlang equivalent of the Java SocketChannel class? Need to be able to handle multiple client socket connections using one Erlang process.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
gen_tcp 接口允许您通过单个 Erlang 进程轻松地与多个套接字进行交互。使用 {active, Once} 套接字选项,或者,如果您幸运的话,使用 {active, true} 套接字选项。对于一个/多个非常繁忙的套接字,后者可能会冒着向 Erlang 进程的邮箱创建超出其处理能力的消息的风险,因此 {active, Once} 是首选选项。
看:
http://www.erlang.org/doc/man/inet.html
和
http://www.erlang.org/doc/man/gen_tcp.html
该选项通常在 gen_tcp:listen() 或 gen_tcp:connect() 调用中指定,尽管您也可以使用 inet:setopts() 更改套接字上的“活动”模式设置。
The gen_tcp interface allows you to interact quite easily with multiple sockets by a single Erlang process. Use the {active, once} socket option or, if you're feeling lucky, {active, true} socket option. For one/lots of very busy sockets, the latter can risk creating more messages to your Erlang process's mailbox than it can handle, hence {active, once} being the preferred option.
See:
http://www.erlang.org/doc/man/inet.html
and
http://www.erlang.org/doc/man/gen_tcp.html
The option is usually specified in the gen_tcp:listen() or gen_tcp:connect() calls, though you can also change the 'active' mode setting on a socket using inet:setopts().