1

有没有办法在 Erlang 中获取客户端的 IP 地址以进行 tcp 连接;基于客户端连接到服务器的假设?

我还想知道是否有必要将特定的数据包发送到特定的客户端;就像服务器不广播的情况一样,但是我需要IP地址将数据包发送到特定客户端还是服务器只是为每个客户端使用参考(erlang:monitor)?

4

1 回答 1

3

对于另一端的地址,inet:peername(Socket)。但是,如果您想处理 a 中的TCP Conversation每个客户端,通常,一旦每个客户端连接,您将生成单独的 erlang 进程来处理它,然后Transfer the Socket Ownership再到生成的进程。

然后,在 中receive loop,您将向/从客户端发送和接收二进制数据。考虑看看这个模块:gen_tcp,详细。但是,您的问题听起来像,您想实现一个Peer-to-peer系统。在这样的系统中,您将agents在软件中创建,每个代理都可以随时成为服务器或客户端。当代理之间的通信仅按需进行并且除非有要发送的内容否则不会创建会话/连接时,尤其需要这样做。我可能不应该这样做。

于 2013-03-12T04:42:37.667 回答