0

我正在用 Erlang 编写一个分布式聊天应用程序,以供我自己学习/受益。我有一个维护持久 TCP 连接的客户端和服务器。客户端使用 gen_tcp:connect/3 发起连接。服务器实际上分布在多个节点上。

gen_tcp 文档说:

可以使用 send/2 将数据包发送到返回的套接字 Socket。从对等方发送的数据包作为消息传递:

{tcp,套接字,数据}

因此,我的客户端能够接收服务器作为普通 Erlang 消息发送的任何数据。这对我的应用程序来说是可取的。

问题是我看不到任何方法可以使服务器上的连接以相同的方式进行。如果我的服务器可以接收作为 Erlang 消息发送的数据,我会很高兴的。这样,服务器可以在等待客户端发送消息的同时发送数据(即当聊天室中的另一个人发送消息时)。

有没有办法实现这种行为?

编辑:我知道 prim_inet:async_accept/2,但如果可能的话,我更喜欢记录在案的方法。

4

1 回答 1

2

查看带有选项 {active, once|true}的inet:setopts 。关于的好文章

于 2013-11-29T05:59:48.817 回答