Programa de Mensagem com RMI

Olá Pessoal,

É o seguinte, eu estou fazendo um programa de mensagens como se fosse o win poup up do windows 98.
No windows 2000 tem o comando pra enviar mensagem que é o net send q pode ser mandado via dos…

então pra enviar, poderia ser usado a classe RunTime, mas o problemas é pegar a mensagem recebida e setar em um text area.
tem o exe que vc tem acesso aos logs q é o event viewer, mas alguem saberia como eu posso pegar a mensagem q eu
recebo (no caso do win 2000 a mensagem é setada como se fosse um alert) e setar em um text area???

eu pensei em usar RMI, mas tb nao sei como fazer…alguém tem alguma sugestão???

faloww…
e valeu…

Vou te falar bem geralzão como dá pra fazer. Mas garanto que já existem coisas assim prontas. Eu mesmo, na faculdade, fiz um toscão, mas com CORBA e não com RMI. Se vc for tentar mesmo fazer o seu, eu tenho umas dicas de quem esteve lá pra vc…

Abstraindo bem, vc precisa de 3 partes: o “cliente que envia”, o “cliente que recebe” e o “servidor”, uma espécie de serviço de nomes e gerenciador de mensagens.

O melhor é vc ter um objeto conhecido (isto é, com um registri RMI conhecido) com métodos do tipo:

public User login(String username, String password);
public List getAvailableUsers();
public void sendMessage(Message message);

E enviar as mensages pelo servidor, e não diretamente entre os clientes.

Basicamente dois objetos viajam pela rede: um User e um Message. Assim vc deixa o protocolo fora do RMI, e pode mexer o quanto quiser nele.

Vc tem duas abordagens, push e pull. Com push, o servidor deve poder fazer conexão com os clientes, e as mensagens são enviadas assim que possível. Com pull, os clientes puxam as mensagens de tempos em tempos. A implementação no servidor central muda bastante:

// exemplo de push:
// 1. método no servidor:
public void addMessageListener(User user, MessageListener listener);
// 2. o cliente se registra assim:
server.addMessageListener(this.getUser(), this);
// exemplo de pull:
// 1. método no servidor:
public List getMessages(User user);
// 2. o cliente, de tempos em tempos, puxa todas as mensagens:
List newMessages = server.getMessages(this.getUser());

Eu escolhi pull por simplicidade do servidor, além de poder guardar mensagens enviadas offline mais facilmente, por isso eu devolvia todos os usuários no getAvailableUsers(). Também tem o problema do firewall: pra usar push, vc precisa de callbacks RMI, isto é, vc precisa de objetos RMI exportados ouvindo conexões TCP em cada cliente, e isto pode dar dores de cabeça com o firewall…

Uma coisa que eu acabei implementando na mão e sugiro que vc não faça é a parte de sincronização. use o pacote util.concurrent do Doug Lea (procure “util.concurrent” no Google, é fácil de achar).

boa sorte!!!
[]s

dukejeffrie, muito obrigado pela resposta…
mas sinceramente não sei muito rmi, por isso estou tentando entender. Confesso que o q vc explicou é um tanto quanto complexo, mas vou ver se dá samba…eheheh

valeu cara

dukejeffrie, a resposta da sua mensagem esta em outro topico…um topico novo…

da uma olhada lá…

" Mensagem com RMI "

falow

Não sei se já saiu ou está pra sair um tutorial do GUJ com o basicão do RMI…

olha lá!!

[]s