| | |
Threads en servidor de mensajes instantáneos.
![]() |
•
•
Join Date: Nov 2009
Posts: 5
Reputation:
Solved Threads: 0
Hola a todos,
Estoy tratando de escribir un servidor de mensajería entre clientes, en Java. El problema que tengo es cuando quiero terminar el servidor. El servidor que he pensado funciona así: Cada cliente se conecta a un hilo que crea el servidor y allí envía los mensajes. El problema está en cómo hacer que cuando administrador del servidor desee terminar el programa (presionando 'q' en el teclado), éste acabe con todos los hilos que ha creado y cierre. Para ello había pensado lo siguiente: Que el programa servidor prinicipal, antes de crear cualquier thread para atender a los usuarios, cree un hilo especial dedicado a leer de la entrada por teclado, pero ¿cómo le avisa éste al proceso principal que debe terminar y que por tanto el proceso principal debe decir a todos los demás hilos que ha creado que terminen?
El código que llevo es:
Servidor:
y el hilo que lee del teclado:
Saludos,
Estoy tratando de escribir un servidor de mensajería entre clientes, en Java. El problema que tengo es cuando quiero terminar el servidor. El servidor que he pensado funciona así: Cada cliente se conecta a un hilo que crea el servidor y allí envía los mensajes. El problema está en cómo hacer que cuando administrador del servidor desee terminar el programa (presionando 'q' en el teclado), éste acabe con todos los hilos que ha creado y cierre. Para ello había pensado lo siguiente: Que el programa servidor prinicipal, antes de crear cualquier thread para atender a los usuarios, cree un hilo especial dedicado a leer de la entrada por teclado, pero ¿cómo le avisa éste al proceso principal que debe terminar y que por tanto el proceso principal debe decir a todos los demás hilos que ha creado que terminen?
El código que llevo es:
Servidor:
Java Syntax (Toggle Plain Text)
public class Servidor { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; boolean listening = true; new StdinReaderThread(); try { serverSocket = new ServerSocket(4444); } catch (IOException e) { System.err.println("No pudo crearse el socket"); System.exit(-1); } while (listening){ new HiloServidor(serverSocket.accept()).start(); } serverSocket.close(); } }
y el hilo que lee del teclado:
Java Syntax (Toggle Plain Text)
public class StdinReaderThread implements Runnable{ BufferedReader stdin; public StdinReaderThread(){ Thread subpr = new Thread(this,"x"); stdin = new BufferedReader( new InputStreamReader(System.in)); subpr.start(); } public void run(){ while (true){ try{ String stdinline = stdin.readLine(); if( stdinline.startsWith("q")){ System.out.println("salir"); } else if( stdinline.startsWith("m")) System.out.println("enviar mensaje"); else if( stdinline.startsWith("l")) System.out.println("enviar login"); else if( stdinline.startsWith("u")) System.out.println("lista usuarios"); } catch (Exception e){} } } }
Saludos,
Last edited by eleal; 15 Days Ago at 11:08 am.
![]() |
Similar Threads
- I want google to index forum threads (Search Engine Optimization)
- Not getting instant notifications (DaniWeb Community Feedback)
- IE won't let me access threads. Could someone email me a solution please? (Web Browsers)
- Travel AOL Instant Messenger (Windows NT / 2000 / XP)
Other Threads in the Java Forum
- Previous Thread: Phone Emulator Doesn't Appear
- Next Thread: mean and standard deviation confused
| Thread Tools | Search this Thread |
android api applet application apps array arrays automation awt bidirectional binary birt bluetooth businessintelligence busy_handler(null) card class classes client code collision columns component constructor crashcourse database designadrawingapplicationusingjavajslider draw eclipse error errors eventlistener exception expand fractal game givemetehcodez graphics gui guidancer html ide image inetaddress integer intellij j2me java javadoc javafx javamicroeditionuseofmotionsensor javaprojects jme jni jpanel jtree julia linux list loop machine map method methods mobile mobiledevelopmentcreatejar myaggfun netbeans newbie oracle physics plazmic print problem program project radio recursion scanner server set sharepoint smart sms smsspam sort sortedmaps sql string subclass support swing textfield threads tree trolltech unlimited utility webservices windows





