Sockets entre 4 pcs  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Dae pessoal...

Já sei como fazer comunicação entre 2 computadores via socket, porém estou precisando fazer um jogo de truco em até 4 jogadores em rede.

Minha dúvida é, como conectar 4 computadores via socket?

Obrigado a todos
oyama
Virtual Machine Man

Membro desde: 19/04/2005 10:11:09
Mensagens: 572
Offline

Comunicação via socket é sempre dois a dois (a menos que você faça um esquema de multicast e/ou broadcast).
Duas soluções:
- Ter um servidor que todos se conectam (melhor opção)
- Conectar os computadores dois a dois (vai dar trabalho gerenciar isto).
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

no caso, criando um servidor que todos se conectam...

até onde eu sei, quando eu crio um serverSocket ele recebe 1 conexao, como eu faria pra receber mais d 1?

isso ainda ta muito estranho pra mim!!!

valew cara
KWill
Virtual Machine Man
[Avatar]

Membro desde: 18/09/2006 10:05:46
Mensagens: 609
Offline

aloha wrote:no caso, criando um servidor que todos se conectam...

até onde eu sei, quando eu crio um serverSocket ele recebe 1 conexao, como eu faria pra receber mais d 1?

isso ainda ta muito estranho pra mim!!!

valew cara


Não é bem assim, a classe ServerSocket aguarda uma conexão para cada chamada ao método "accept()" que for feita. Então, se tu quiser "receber" 4 conexões, basta chamar o método "accept()" 4 vezes e em todas as vezes guardar a referência para o objeto do tipo Socket que for retornado, que representa a conexão TCP com a máquina remota.

Inté.

"Só estou certo de que não possuo outras certezas" - KWill
"Não penso, mas Googlo, logo existo!" - Geração Copy-Cola
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

legal

quando eu fiz um jogo em rede de 2 computadores, eu conseguia criar o servidor e me conectar como cliente usando a mesma maquina, por exemplo:

criei o servidor no pc X
no pc X abri o jogo novamente, conectei como cliente no ip 127.0.0.1

isso funciona perfeitamente, sera q com 4 programas diferentes (no caso) isso daria certo?

o problema é q nao tenho 4 computadores para testar o jogo, entao keria saber c tudo funcionaria executando na mesma maquina.

obrigado
ralphsilver
Java Ninja
[Avatar]

Membro desde: 09/03/2008 19:53:14
Mensagens: 269
Offline

4 clientes e um servidor na mesma máquina com certeza funciona.. o que não pode ocorrer é mais de um servidor na mesma máquina.. ocorre o erro de bind (porta já sendo usada).

no seu caso... uma primeira versão poderia ser do jeito que foi citado anteriormente.. vc pega as referencias dos sockets e pronto.. fechou.

No mundo há apenas 10 tipos de pessoas: os que sabem binário e os que não sabem
[MSN]
KWill
Virtual Machine Man
[Avatar]

Membro desde: 18/09/2006 10:05:46
Mensagens: 609
Offline

aloha wrote:legal

quando eu fiz um jogo em rede de 2 computadores, eu conseguia criar o servidor e me conectar como cliente usando a mesma maquina, por exemplo:

criei o servidor no pc X
no pc X abri o jogo novamente, conectei como cliente no ip 127.0.0.1

isso funciona perfeitamente, sera q com 4 programas diferentes (no caso) isso daria certo?

o problema é q nao tenho 4 computadores para testar o jogo, entao keria saber c tudo funcionaria executando na mesma maquina.

obrigado


Tu não precisa necessariamente de 4 computadores, tu precisa é de uma máquina que aguente as 4 instâncias diferentes do aplicativo "cliente" e depois é só usar o host de loopback "localhost" ou "127.0.0.1" para conectar os "clientes" ao "servidor".

Inté.

"Só estou certo de que não possuo outras certezas" - KWill
"Não penso, mas Googlo, logo existo!" - Geração Copy-Cola
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

resumindo:

eu posso fazer com q 4 programas sejam clientes de um servidor, tudo na mesma maquina...
isso eh a mesma coisa q ter cada 1 em 1 pc diferente...

certo?
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team