Chat en java

Todso

Buenas.

Abro este hilo para pedir ayuda con un asuntillo de programación. El tema es que nos han mandado hacer un chat en java, algo básico pues no hemos dado mucho (se ejecuta en la terminal y tal...). Teníamos que hacer la parte del cliente y la del servidor, y ya está hecha y funcionaba bien y tal, pero nos ha pedido modificar el cliente porque, que aunque ya está bien, nos sobraban prácticas.

Lo que nos ha mandado cambiar es que de la manera en que lo teníamos hecho, mientras tú estabas escribiendo en la terminal, si te llegaba un mensaje de otro usuario, se te intercala en la línea que estás escribiendo y sigue luego. Llevo mucho tiempo pensando y no se me ocurre cómo.

Él nos había dicho hacer que no imprimiera por pantalla hasta que pulsas el Enter para enviar tu mensaje, y ante la posibilidad de que el usuario no escribiera, para que no se quedara sin poder leer, meter además un temporizador. Pero no me convence ni sé muy bien cómo hacerlo, así que, me pongo en vuestras manos.

El código del cliente es éste:

ClienteChat
ClienteChatThread

Por si hay que tenerlo en cuenta para algo, usamos Ubuntu.

Muchas gracias de antebra$ho y esas cosas.

PD: Creo que éste era el subforo, si no es así, pido disculpas y ruego a moderación lo muevan a donde corresponde.

LOc0

Necesitas hacer dos cosas:

1º) Leer la línea carácter a carácter con:

http://jline.sourceforge.net/apidocs/jline/ConsoleReader.html#readVirtualKey%28%29

y te las vas guardando hasta que leas ENTER.

2º) SI mientras estás tecleando recibes un mensaje tienes que borrar lo que lleves tecleado, mostrar el mensaje recibido y volver a escribir en pantalla lo que te guardaste antes.

Juguetea con las funciones de -> http://jline.sourceforge.net/

http://jline.sourceforge.net/apidocs/index.html

para mover el cursor, meter espacios, etc...

Salu2 ;)

1 1 respuesta
Todso

#2 Ante todo muchas gracias. Pero por favor, podrías ser un poco más concreto? Es que acabamos de empezar con esto de Java y nos han enseñado poco más que un par de ejemplos hechos xD.

He mirado las funciones esas pero o todavía soy muy tonto o no están nada explicadas porque no me queda nada claro cómo usarlas xDD

LOc0
spoiler

Bájate jline-1.0.jar

javac -cp jline-1.0.jar Lector.java
java -cp .:jline-1.0.jar Lector

Suerte!

Salu2 ;)

1 respuesta
Todso

#4 Muchas gracias! Vamos a ir probando!

Usuarios habituales

  • Todso
  • LOc0