• Martes 21 de Mayo de 2024, 00:33

Autor Tema:  Leer Varias Lineas De Texto  (Leído 2310 veces)

mparera

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Leer Varias Lineas De Texto
« en: Martes 31 de Octubre de 2006, 09:15 »
0
Hola,

Soy estudiante de la UOC y nos han puesto una práctica donde tenemos que crear unos sockets entre un cliente y un servidor y a través de este mandar un correo electrónico.

Mis dudas són:

Como puedo hacer para que el código me sirva tanto para enviar a un usuario como a varios, me refiero a como puedo hacer el código que me acepte uno o varios.

Como puedo leer varias líneas de texto y que me lo guarde todo junto, es para poder enviar todo el mensaje junto incluyendo algún \n o \r.

Si no queda muy claro decídmelo y miraré de explicarme mejor.

Muchas grácias.

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Leer Varias Lineas De Texto
« Respuesta #1 en: Martes 31 de Octubre de 2006, 09:37 »
0
Hola...

Un socket, por definición es un canal de comunicación entre dos máquinas. Si quieres enviar la misma información a varias máquinas distintas, tendrás que usar sockets distintos. (O bien, cuando acabes un envío comienzas el siguiente, o bien, creando hebras que envíen cada una a un receptor distinto).


En cuanto a enviar la información, si miras la clase Socket, verás que no existe forma de escribir directamente. Usa los métodos getInputStream() y getOutputStream() y podrás utilizar read() y write() (O crea con los resultados objetos de I/O con buffer o Reader / Writer para leer o escribir por líneas).
Metelo en un bucle while y que te mande el fichero hasta el final.

En el otro lado, tendrás que recogerlo. En realidad, no debería importar cómo lo recojas, siempre debería devolver el fichero original.





Espero que te sirva.




Saludos.





Silverfox

mparera

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Leer Varias Lineas De Texto
« Respuesta #2 en: Martes 31 de Octubre de 2006, 09:51 »
0
Grácias,

Sí, para leer la información uso .readline(); pero sólo consigo capturar una línea.

Me gustaria poder capturar texto hasta que lo indicase por ejemplo con una línea que empezase con @.

Cómo puedo capturar uno o varios usuarios de correo.

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Leer Varias Lineas De Texto
« Respuesta #3 en: Martes 31 de Octubre de 2006, 12:01 »
0
Código: Text
  1. StringReader lector= new StringReader();
  2. BufferedReader is = [entrada de datos]
  3.  
  4. while (is.ready())
  5.    lector.append(is.readLine()+"\n");
  6.  


Si usas BufferedInputStream, tendrás que usar un ByteArrayInputStream o similar, pero la técnica es la misma.

Así lees toda la entrada.

Una vez que la tengas toda, mira la clase StringTokenizer, para partirla y procesar las partes que quieras.


Un saludo.





Silverfox