有没有办法在Erlang中获取客户端的ip-address以进行tcp连接;基于客户端连接到服务器的假设?
我也想知道是否有必要将特定数据包发送给特定客户端;在服务器没有广播的情况下,但是我需要ip-address将数据包发送到特定客户端,还是服务器只是为每个客户端使用引用(erlang:monitor)?
答案 0 :(得分:3)
对于另一端的地址inet:peername(Socket)
。但是,如果要在TCP Conversation
中处理每个客户端,一旦每个客户端连接,通常会产生单独的erlang进程来处理它,然后Transfer the Socket Ownership
到生成的进程。
然后,在receive loop
内,您将向客户端发送和接收二进制数据。请考虑详细查看此模块:gen_tcp
。但是,您的问题听起来像是,您希望实现Peer-to-peer
系统。在此类系统中,您可以在软件中创建agents
,每个代理都可以随时成为服务器或客户端。当代理之间的通信仅按需进行并且除非有要发送的内容之外不会创建会话/连接时,尤其需要这样做。我可能不应该进入那个。