【问题标题】:Erlang:Client ip-address, send packet to specific client?Erlang:客户端IP地址,将数据包发送到特定客户端?
【发布时间】:2013-02-27 06:00:38
【问题描述】:

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

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

【问题讨论】:

    标签: erlang client ip-address tcp-ip


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-04-07
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 2018-08-07
      • 2017-03-18
      • 2019-06-01
      • 2019-01-14
      • 2011-10-22
      相关资源
      最近更新 更多