Sockets,threads//Para expertos
Bueno mi duda sera simple para el que sepa,estoy creando un servidor que recibira multiplex conexiones..Lo tengo hecho asi...no añado todo el codigo pq no lo encuentro necesario,si hiciera flata ya lo añadire.
Public class Server extends Thread{
.......
.......
public Static void main(Strings[] args){
Server s1=new Server();
Server s2=new Server();
}
}
Asi tan solo puedo escuchar dos conexiones como puedo hacerlo para que escuche ciontinuamente y me vaya generando hilos.
Yo havia pensado algo como; "Igual es mmuy de novato pero es lo ke soy""
en el main :
boolean escuxo=true;
ServerSocket Skserver=new ServerSocket();
Socket skClient=skServer.accept();
while(escuxo ==true){
//aki tendria ke venir algo para ke cada vez que se conecte alguien cree un nuevfo hilo.
y lo envie a la funcion run.
Pero como puedo saber ke se conecta alguien??
Gracias x la ayuda
Public class Server extends Thread{
.......
.......
public Static void main(Strings[] args){
Server s1=new Server();
Server s2=new Server();
}
}
Asi tan solo puedo escuchar dos conexiones como puedo hacerlo para que escuche ciontinuamente y me vaya generando hilos.
Yo havia pensado algo como; "Igual es mmuy de novato pero es lo ke soy""
en el main :
boolean escuxo=true;
ServerSocket Skserver=new ServerSocket();
Socket skClient=skServer.accept();
while(escuxo ==true){
//aki tendria ke venir algo para ke cada vez que se conecte alguien cree un nuevfo hilo.
y lo envie a la funcion run.
Pero como puedo saber ke se conecta alguien??
Gracias x la ayuda
Muy facil mira... te pongo un ejemplillo de un servidor multihilo para un chat que me he creado. Si tienes alguna duda me escribes a [email protected] y ya te explico con mas detenimiento.
Aqui esta el ejemplo:
public Server (int puerto){
int puertoServidor=puerto;
int num_users; //esto lo puse para poner un limite de usuarios que se puedan conectar al servidor
try{
System.out.println("Servidor escuchando en el puerto"+puertoServidor);
static Vector vectClientes=new Vector(); // Un vector de hilos para atender a los clientes
num_users=0; // Pongo a 0 el numero de usuarios conectados al sistema
ServerSocket sock_servidor=new ServerSocket (puertoServidor); // Creamos un socket en el puerto que se queda escuchando
while (num_users < 10){ // Solo acepto 10 clientes
Socket cli_sock=sock_servidor.accept(); //Aceptamos al cliente
System.out.println("Conexion efectuada: Numero " +num_users);
ServidorHijo Hijo=new ServidorHijo(num_users,cli_sock); // ServidorHijo es una clase mia que simplemente se dedica a tratar los mensajes. En esta podrias poner lo que tu quieras y pasarle los parametros al constructor que necesites
vectClientes.addElement(Hijo); //Añado el nuevo hilo al vector para asi tenerles "controlados"
Hijo.start(); //Ejecutamos el servidor hijo
num_users++;
}catch (IOException e){e.printStackTrace();}
catch (IndexOutOfBoundsException e){e.printStackTrace();}
catch (Exception e){e.printStackTrace();}
Creo que aqui tendrias todo... ya te digo... si necesitas mas ayuda o postealo aqui o escribe a la direccion de arriba y ya esta
Aqui esta el ejemplo:
public Server (int puerto){
int puertoServidor=puerto;
int num_users; //esto lo puse para poner un limite de usuarios que se puedan conectar al servidor
try{
System.out.println("Servidor escuchando en el puerto"+puertoServidor);
static Vector vectClientes=new Vector(); // Un vector de hilos para atender a los clientes
num_users=0; // Pongo a 0 el numero de usuarios conectados al sistema
ServerSocket sock_servidor=new ServerSocket (puertoServidor); // Creamos un socket en el puerto que se queda escuchando
while (num_users < 10){ // Solo acepto 10 clientes
Socket cli_sock=sock_servidor.accept(); //Aceptamos al cliente
System.out.println("Conexion efectuada: Numero " +num_users);
ServidorHijo Hijo=new ServidorHijo(num_users,cli_sock); // ServidorHijo es una clase mia que simplemente se dedica a tratar los mensajes. En esta podrias poner lo que tu quieras y pasarle los parametros al constructor que necesites
vectClientes.addElement(Hijo); //Añado el nuevo hilo al vector para asi tenerles "controlados"
Hijo.start(); //Ejecutamos el servidor hijo
num_users++;
}catch (IOException e){e.printStackTrace();}
catch (IndexOutOfBoundsException e){e.printStackTrace();}
catch (Exception e){e.printStackTrace();}
Creo que aqui tendrias todo... ya te digo... si necesitas mas ayuda o postealo aqui o escribe a la direccion de arriba y ya esta