package games.strategy.net; import java.io.Serializable; import java.net.InetAddress; import java.net.InetSocketAddress; /** * A Node in a network. * * <p> * Node identity is based on address/port. The name is just a display name * </p> * * <p> * Since different nodes may appear as different adresses to different nodes (eg the server sees a node as its nat * accesseble adress, while * the node itself sees itself as a subnet address), the address for a node is defined as the address that the server * sees! * </p> */ public interface INode extends Serializable, Comparable<INode> { /** * @return The display/user name for the node. */ String getName(); /** * @return The address for the node as seen by the server. */ InetAddress getAddress(); /** * @return The port for the node as seen by the server. */ int getPort(); /** * @return The address for the node as seen by the server. */ InetSocketAddress getSocketAddress(); }