2013-03-11 185 views
1

有没有办法让一个客户端的IP地址在Erlang的TCP连接;基于客户端连接到服务器的假设?Erlang:客户端IP地址,发送数据包到特定的客户端?

我也想知道是否有必要发送特定的数据包给特定的客户端;如服务器没有广播的情况下,但是我需要IP地址发送数据包给特定的客户端,还是服务器只是为每个客户端使用引用(erlang:monitor)?

回答

3

对于另一端的地址,inet:peername(Socket)。但是,如果要在TCP Conversation中处理每个客户端,则一旦每个客户端连接,通常会生成单独的erlang进程来处理该进程,然后再生成进程。

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