Gostaria de saber como desenvolver um programa em Java que permita executar a seguinte situação:
Desenvolva uma aplicação em Java chamada Chat que instancie classes obedecendo às seguintes regras:
i. O chat é composto de Servidor, Clientes e Usuários.
ii. Cada Usuário possui os atributos nick (apelido) e sexo (M ou F).
iii. Cada Cliente possui um endereço IP, um Usuário e um Servidor vinculados a ele e sabe solicitar ao Servidor que estabeleça uma conexão passando as informações do nick e sexo do usuário e do seu endereço IP.
iv. O Servidor possui um endereço IP fixo e tem a habilidade de aceitar conexões de clientes.
v. Ao aceitar uma conexão o Servidor deverá armazenar o nick e o sexo do usuário mais o endereço IP do cliente passado como
parâmetro em um vetor interno conforme o seguinte exemplo: [?nick1:M:10.1.0.1?,?nick2:F:10.1.0.5?..] e em seguida retornar
uma mensagem ?Conexão estabelecida com sucesso!?, mas caso o IP do cliente não comece com o numero 10, o servidor não
deverá aceitar este cliente devolvendo a mensagem ?Conexão indevida! Seu IP não é válido!?
vi. A aplicação Chat deverá simular a criação de um Servidor com pelo menos 2 Clientes e 2 Usuários e tentar estabelecer as
conexões entre os clientes e o servidor exibindo as mensagens resultantes com comandos System.out.println.
Não acredito que soquetes sejam necessários. Pelo que percebi, é um exercício para fixação do básico.
O cenário de chat é só pra ilustrar a situação, mas na verdade ele vai ter que criar algumas classes que “simulem” tudo isso.
Classe Servidor, Cliente, Usuario com os atributos e comportamentos descritos ali.
Vão ser alguns relacionamentos simples, uns métodos pra gerenciar coleções e alguns prints… foi o que entendi.
Rapaz, o que você já tem pronto? Qual a idéia que você tem disso? Já criou as classes (Sabe fazer isso?)? Vai colocando pra gente as suas dúvidas que a gente tenta ajudar.
Não é complicado. Se for uma simulação, monte os diagramas de classe, mapeie os atributos e métodos baseado nesse modelo descrito que escreveu e implemente. Abaixo segue algumas coisas que vi mais explicícitas no seu modelo e criei as classes que acho que precisa. Daqui para frente é com você. Se tiver alguma dúvida específica, volte a postar:
[code]package chat;
public class Usuario {
private String nick;
private char sexo;
public String getNick() {
return nick;
}
public void setNick(String nick) {
this.nick = nick;
}
public char getSexo() {
return sexo;
}
public void setSexo(char sexo) {
this.sexo = sexo;
}
}
[/code]
[code]package chat;
public class Cliente {
private String IP;
private Usuario user;
private Servidor server;
public String getIP() {
return IP;
}
public void setIP(String ip) {
IP = ip;
}
public Usuario getUser() {
return user;
}
public void setUser(Usuario user) {
this.user = user;
}
public Servidor getServer() {
return server;
}
public void setServer(Servidor server) {
this.server = server;
}
}
[/code]
[code]package chat;
public class Servidor {
private final static String IP_SERVIDOR = "XXX.XXX.XXX.XXX";
public void receberConexao(Cliente cliente) {
//TODO Me implemente!
}