Pessoal alguem tem ideia como faço tipo um chat somente com SOCKET nao posso usar theed, pois um server deve controlar esses usuarios conectados e essesusuarios devem se conectar entre si, mais um usuario nao pode ser conectado por 2 maquinas ou seja tem que ser um para um, pois nao posso usar theed nesse caso, ja tenho a implementacao de servidor/cliente, ouseja as duas classes que uma conversar com a outra, mais preciso fazer esse outro desafio…
Alguem tem ideiaou entendeu o que falei???
essecodigo foi o que ja fiz da primeira parte,
`public class Cliente {
public static void main(String[] args) throws Exception {
System.out.println("Iniciando cliente.");
System.out.println("Iniciando conexao com o servidor.");
Socket socket = new Socket("192.168.0.110", 5000);
System.out.println("Conexao estabelecida.");
InputStream input = socket.getInputStream();
OutputStream output = socket.getOutputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(input));
PrintStream out = new PrintStream(output);
Scanner scanner = new Scanner(System.in);
while (true){
System.out.println("digite uma mensagem: ");
String mensagem = scanner.nextLine();
out.println(mensagem);
if ("FIM".equals(mensagem)){
break;
}
mensagem = in.readLine();
System.out.println("Mensagem recebida do servidor: " +
mensagem);
}
System.out.println("Encerrando conexao.");
in.close();
out.close();
socket.close();
}
}`
servidor
`public class Servidor {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
// TODO code application logic here
//System.out.println("-----------------------------------");
System.out.println("Iniciando Servidor.");
ServerSocket server = new ServerSocket(5000);
System.out.println("Aguardando conexao.");
Socket socket = server.accept();
System.out.println("conexão estabelecida com sucesso.");
InputStream input = socket.getInputStream();
OutputStream output = socket.getOutputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(input));
PrintStream out = new PrintStream(output);
while(true){
String mensagem = in.readLine();
System.out.println("Mensagem recebida do cliente[" +
socket.getInetAddress().getHostName() + "]:" +
mensagem);
if ("Fim".equals(mensagem)){
break;
}
out.println(mensagem);
}
System.out.println("Encerrando conexao.");
in.close();
out.close();
socket.close();
System.out.println("Encerrando servidor");
server.close();
}
}
`