Escribo una aplicación cliente/servidor simple y descubrí que usar DataInputStream para leer datos era muy conveniente porque le permite elegir qué leer (sin tener que convertirlo usted mismo de bytes), pero me pregunto si sería mejor envolverlo en un BufferedInputStream también, o si eso solo agregaría una sobrecarga innecesaria?Java - ¿Cómo usar DataInputStream con Sockets, en búfer o no?
La razón por la que estoy preguntando es porque no sé qué tan caro es leer directamente de la secuencia de socket (al usar un BufferedInputStream, solo leerá una vez de la secuencia de socket y luego multiplicará las veces desde BufferedInputStream usando DataInputStream).
La información recibida suele ser bastante pequeña, alrededor de 20-25 Bytes.
¡Gracias de antemano por cualquier respuesta! : D
Eso no tiene sentido. El buffer se asigna una vez durante la vida útil del socket. Puede haber cualquier número de lecturas. Cuanto menor sea la lectura, más * significará * el almacenamiento en búfer. – EJP
Si los clientes se conectan, enviar un pequeño mensaje, luego desconectarse (como lo haría algo de Ajax-y) y luego almacenar en búfer puede ser ineficiente. El número de lecturas debería ser bastante pequeño, pero quizás el rango de 20-25 sea lo suficientemente bajo. No lo sé: es por eso que sugerí hacer un perfil. –
Ahora que lo pienso, AJAX no obtendrá mensajes de 20-25 bytes ... XML es demasiado detallado. Sin embargo, yo * he * asumido que los clientes no mantienen sus conexiones. Si esa suposición es incorrecta, siempre use un buffer. –