Hola que tal, miren esto es asi, es un programa que se conectan varios usuarios y tanto yo como ellos tenemos que tener la capacidad de enviarnos cadenas de texto (charlar)
Ahora bien, nesesito user Thread porque se pueden llegar a conectar muchos, y se me complica para enviar los datos porque el metodo enviarDatos que esta dentro de la clase User que es cuando ya establesco una conexion con el usuario, es el que envia las cadenas, pero yo el boton enviar lo apreto y obtengo el string en el cliente (donde esta la interfaz), y no se como hacer para poder usar el metodo ese siendo que puede llegar a haber muchos users.....pero en un primer momento no se como hacer ni para uno solo:
Les dejo un pedazo de codigo para que no se pierdan
private Cliente cliente = null;
private int id = 0;
public User
(Cliente cliente,
Socket socket,
int id
){ this.cliente = cliente;
this.socket = socket;
this.id = id;
}
@Override
public synchronized void run(){
try {
obtenerFlujos();
}
System.
err.
println("Se desconecto alguien"); }
finally {
cerrarConexion();//todo
}
}
salida.flush();
System.
out.
println("Se conecto alguien"); }
public void enviarDatos
( String mensaje
) { try {
salida.writeObject(mensaje);
salida.flush();
System.
out.
println("Se envio: "+ mensaje
); }
System.
err.
println("Error al escribir objeto"); }
}
}
private Cliente cliente = null;
public socket
(int port,
int backlog,Cliente cliente
) throws IOException { super(port, backlog);
this.cliente = cliente;
}
@Override
public synchronized void run() {
int n=0;
while(true){
try {
this.socket = accept();
User user = new User(cliente,socket,n);
user.start();
}
}
}
private socket socket = null;
@Override
if(evt==buttonInit) {
try {
socket
= new socket
(Integer.
parseInt(textFieldPort.
getText()),
100,
this); }
}
if(evt==botonComando){
user.enviarDatos(comando.getText()); //Aca no se como hacer para enviar un string a la otra persona.......
}
}
public Cliente(){
CrearInterfaz();
}
public static void main
(String[] args
){ new Cliente();
}
private JButton botonComando
= null;
private void CrearInterfaz(){
this.
botonComando = new JButton("Enviar"); this.panel.add(comando);
this.panel.add(botonComando);
this.botonComando.addActionListener(this);
}
}
Haber si a alguien se le ocurre algo