Fórum (Sockets) Como fazer para o servidor mandar uma mensagem... #569670

09/04/2009

0

(Sockets) Como fazer para o servidor mandar uma mensagem apenas para um dos clientes. Pois o problema é o seguinte eu quero fazer um jogo da memória para jogar em duas pessoas, mas podem ter diferentes mesas pessoas jogando. Então vamos supor quando o cliente da mesa1 jogar, apenas o outro cliente desta mesa deverá receber a mensagem ! E então como que eu faço algo do genero ?
Edinei Manica

Edinei Manica

Responder

Posts

09/04/2009

Dalton

Tem dois tutoriais de sockets aqui: http://www.javafree.com.br/forum/viewforum.php?f=17 Te diverte!
Responder

Gostei + 0

09/04/2009

Claudio Paranhos

[quote="Edinei Manica"](Sockets) Como fazer para o servidor mandar uma mensagem apenas para um dos clientes. Pois o problema é o seguinte eu quero fazer um jogo da memória para jogar em duas pessoas, mas podem ter diferentes mesas pessoas jogando. Então vamos supor quando o cliente da mesa1 jogar, apenas o outro cliente desta mesa deverá receber a mensagem ! E então como que eu faço algo do genero ?
Vc terá que ao iniciar o jogo, pegar o IP das duas pessoas que estarão jogando juntas. Assim vc conseguirá identificar a dupla que está competindo e enviará a mensagem apenas as mesmas, através de sockets passando como parametro a porta e o IP. Do outro lado (recebimento da mensagem) vc terá que rodar uma thread que vai ficar varrendo o porta que será utilizada para o troca de mensagens. Se entendi bem a sua dúvida, acho que é isso. :!:
Responder

Gostei + 0

09/04/2009

Edinei Manica

[quote="Claudio Paranhos"][quote="Edinei Manica"](Sockets) Como fazer para o servidor mandar uma mensagem apenas para um dos clientes. Pois o problema é o seguinte eu quero fazer um jogo da memória para jogar em duas pessoas, mas podem ter diferentes mesas pessoas jogando. Então vamos supor quando o cliente da mesa1 jogar, apenas o outro cliente desta mesa deverá receber a mensagem ! E então como que eu faço algo do genero ?
Vc terá que ao iniciar o jogo, pegar o IP das duas pessoas que estarão jogando juntas. Assim vc conseguirá identificar a dupla que está competindo e enviará a mensagem apenas as mesmas, através de sockets passando como parametro a porta e o IP. Do outro lado (recebimento da mensagem) vc terá que rodar uma thread que vai ficar varrendo o porta que será utilizada para o troca de mensagens. Se entendi bem a sua dúvida, acho que é isso. :!:
E como mais ou menos seria a programação ? Eu teria que armazenar em uma variavel quais que são os parceiros de mesa, e quando um quiser mandar uma mensagem pro outro o servidor deve varrer um vetor para ver quem é o meu adversário para mandar a mensagem ?
Responder

Gostei + 0

09/04/2009

Edinei Manica

[quote="aspirante"]Tem dois tutoriais de sockets aqui: http://www.javafree.com.br/forum/viewforum.php?f=17 Te diverte!
Nos tutoriais não fala nada sobre isto ! Não é tratado da forma de mandar apenas para um cliente especifico! Ou eu não percebi que tinha !
Responder

Gostei + 0

09/04/2009

Claudio Paranhos

[quote="Edinei Manica"] E como mais ou menos seria a programação ? Eu teria que armazenar em uma variavel quais que são os parceiros de mesa, e quando um quiser mandar uma mensagem pro outro o servidor deve varrer um vetor para ver quem é o meu adversário para mandar a mensagem ?
Exatamente, primeiro vc terá que associar os dois adversários de alguma forma. Quando um desses jogar vc terá que buscar, no local onde associou os dois, o ip do adversário e enviar a mensagem. Enviando:
{...
String ip="192.168.0.1"; //vc terá que pegar o ip do adversário 
String porta="8080"; //funciona em qualquer "porta aberta"
String mensagem="jogada 1";
Socket s = new Socket(ip,porta);
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
out.println(mensagem);
out.close();
s.close();
...}
Recebendo:
{...
String porta="8080";
ServerSocket ss = new ServerSocket(porta);
while(ss!=null){
    Socket s = ss.accept();
    BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
    String remetente = s.getInetAddress().getHostAddress();//descobrir o ip do remetente, se é que te interessa
    String mensagem = in.readLine();
    String linha = null;
    while((linha=in.readLine())!=null){
        String mensagem = linha;
   }
   in.close();
   s.close();
}//while
ss.close();
...}
acho que é mais ou menos por ai. :o
Responder

Gostei + 0

09/04/2009

Edinei Manica

Vou tentar fazer algo parecido!
Responder

Gostei + 0

09/04/2009

Edinei Manica

Galera consegui apreender sockets, fiz um joguinho de memória para jogar em rede, permitindo que tenham várias mesas (duplas) jogando ao mesmo tempo, tem um servidor de chat entre os clientes! Então valeu galera pela ajuda no inicio de meu apreendizado, se precisarem estamos ai !
Responder

Gostei + 0

09/04/2009

Claudio Paranhos

[quote="Edinei Manica"]Galera consegui apreender sockets, fiz um joguinho de memória para jogar em rede, permitindo que tenham várias mesas (duplas) jogando ao mesmo tempo, tem um servidor de chat entre os clientes! Então valeu galera pela ajuda no inicio de meu apreendizado, se precisarem estamos ai !
Legal Edinei, que tal um tutorial ? :!:
Responder

Gostei + 0

09/04/2009

Edinei Manica

Estou pensando em fazer um, mas vou esperar chegar as férias, pois agora estou muito atarefado !
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar