Caro amigo,
Fiz algo na faculdade com sockets no inicio do ano. Cada um desenvolveu seu código de cliente/servidor.
O seu problema é parecido. Cada máquina terá que ser ao mesmo tempo um cliente e um servidor. Terá que ser um cliente para poder enviar mensagem para outra máquina, e terá que ser um servidor para poder aceitar conexões e receber mensagens de um outra máquina que estiver conectada a ela.
Você terá que configurar a porta que aceitará a conexão, no seu código Servidor.
. . .
String porta = "8080";
ServerSocket srv = null;
Socket soc = null;
try{
srv = new ServerSocket(porta);
soc = srv.accept();
}catch(IOException e){
e.printStackTrace();
}finally{
try{
soc.close();
srv.close();
}catch(IOException e){
e.printStackTrace();
}
}
. . .
E no seu código Cliente, você terá que configurar a porta que será conectada e o endereço do computador que deseja conectar.
. . .
Socket s = null;
try{
s = new Socket("127.0.0.1",8080);
}catch(IOException e){
e.printStackTrace();
}finally{
try{
s.close();
}catch(IOException e){
e.printStackTrace();
}
}
. . .
Fazendo isso, a topologia de rede que utilizará, pouco importa.
Já experimentou ler o artigo sobre sockets aqui do GUJ?
[url]http://www.guj.com.br/java.tutorial.artigo.126.1.guj[/url]
Dá uma olhada. Esta muito bom esse artigo e te ajudará bastante.
Ats.,
Daniel Pedra B. V. Silva