Cómo utilizar subprocesos múltiples en el servidor de socket
importar java.io.*;
importar java.net.*;
Clase pública ChatServer {
booleano iniciado = falso ;
ServerSocket ss = null;
public static void main(String[] args) {
new ChatServer().start();
}
public void start() {
prueba {
ss = new ServerSocket(8888
iniciado); = verdadero;
} captura (BindException e) {
System.exit(0);
} captura (IOException e) {
e.printStackTrace();
}
prueba {
while(iniciado) {
Socket s = ss.accept ();
Cliente c = nuevo(s) Cliente(s);
System.out.println("¡un cliente conectado!");
new Thread( c).start();
//dis.close();
}
} catch (IOException e) {
e.printStackTrace();
} finalmente {
prueba {
ss.close()
} catch (IOException); e) {
// TODO Bloque de captura generado automáticamente
e.printStackTrace();
}
}
}
clase Cliente implementa Runnable {
sockets privados
dataInputStream privado dis = null
booleano privado; bConnected = false;
Cliente público (Socket s) {
this.s = s;
prueba {
dis = nuevo DataInputStream(s.getInputStream());
bConnected = true;
} catch (IOException e) {
// TODO Bloque de captura generado automáticamente
e.printStac
kTrace();
}
}
public void run() {
prueba {
mientras (bConectado) {
String str = dis.readUTF();
System.out.println(
}
} catch (EOFException e) {
System.out.println("¡Cliente cerrado!"
} catch (IOException e) {
e); .printStackTrace();
} finalmente {
prueba {
if(dis != null) dis.close();
if(s != null) s.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}