socket

Ana Jara
16 de Agosto del 2004
Si necesito enviar un array de string de A a B
for (int i=0; i<8; i++)
{
out.write(Ks[i]);
}
DataOutputStream out=new DataOutputStream(socket.getOutputStream());

El write de que tipo es ? writeByte me da problemas con la i

kamegeist
16 de Agosto del 2004
Cuando se está programando con sockets, los objetos OutputStream y el InputStream se utilizan para enviar y recibir bytes individuales o sets de bytes. El método write del OutputStream para enviar y el método read de InputStream para leer.

Aún así, es más útil enviar y recibir valores de tipos de datos primitivos (como integers y doubles) o tipos de datos clase (ejemplo String) que estar enviando bytes. Para eso se puede utilizar los ObjectOutputStream y el ObjectInputStream y encadenarlos al OutputStream y al InputStream asociados al Socket.

Entonces se puede crear un objeto de tipo ObjectOutputStream y encadenarlo al OutputStream
mediante el método getOutputStream de un objeto Socket.

Ejemplo:
Se tienen esas dos variables previamente declaradas:
Socket c;
ObjectOutputStream salida;

Para encadenar el objeto salida al OutputStream se hace:
salida = new ObjectOutputStream(c.getOutputStream());
salida.flush();

El método flush es para enviar un encabezado que contiene información necesaria para que el ObjectInputStream del cliente se prepare para recibir los datos correctamente.

Después se puede hacer un envio de un mensaje así:

Supongamos que tengo una variable asi:

String info = "Hola cliente, como estas";

salida.writeObject(info);
salida.flush();

Espero la idea se capte.
Suerte.