Ayúdame a cambiar el programa de un solo subproceso a un programa JAVA de múltiples subprocesos, ¡urgente!
Definir un atributo de tipo socket.
El constructor requiere un parámetro de tipo socket. Úselo para inicializar las propiedades del socket.
Entonces aquí.
Client=server.accept( );
Thread thread=new Thread(Client);//Hilo en el socket del cliente obtenido.
thread.start ();
Luego simplemente escriba lo que desea hacer con el socket en un hilo personalizado o en el método de ejecución en la clase Runnable. De esta manera, la comunicación con cada cliente (es decir, socket) es un hilo separado.
Te lo cambié. Probablemente no esté bien. En definitiva, si modificas en esta línea no habrá problema.
importar java.io.InputStream;
importar java.io.OutputStream;
importar java.net.ServerSocket;
importar java.net.Socket;
la clase pública SocketServer extiende Frame implementa ActionListener {
Label label = new Label("Ingrese el mensaje de chat y presione Enter para enviar!"); p>
p>
TextField tf = new TextField(20);
TextArea ta = new TextArea();
Panel panel = new Panel();
ServerSocket server;
Socket Client;
InputStream DataIn;
OutputStream DataOut;
public SocketServer() {
super("Servidor ");
setSize( 380, 300);
panel.amarillo);
addWindowListener( nuevo WindowAdapter()) {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
p>show();
prueba {
server = new ServerSocket(5000);
while (true ) {
Cliente = server.accept();
Hilo hilo = nuevo hilo (nuevo SSocket(Cliente));
hilo.start();
}
} captura (IOException ioe) {
}
}
}
}
public static void main(String args[]) {
new SocketServer();
}
public void actionPerformed(ActionEvent e) {
prueba {
String str = new String(tf.getText());
byte buf[] = str. getBytes();
tf.setText(" ");
DataOut.write(buf);
ta.append("el servidor dice: el servidor say.append("El servidor dice:" + str + "\n");
} catch ( IOException ioe) {
}
}
clase SSocket implementa Runnable {
cliente de socket;
> SSocket público (cliente de socket) {
this.client = cliente;
}
public void run() {
DataInputStream input;
while (true) {
prueba {
ta.append("Ya conectado al cliente:" + client.getInetAddress() p>
+ client.getInetAddress().getHostName() + "\n\n");
DataIn = client.getInputStream();
DataOut = cliente. getOutputStream();
DataOut = cliente.getOutputStream();
DataOut = cliente.getOutputStream();