Pregunta

Tengo un par de preguntas sobre el envío de imágenes.

¿Cómo manejo diferentes tipos de archivos, jpeg, png, etc.

Si el archivo es grande, debo usar números de secuencia ... pero no sé cómo dejar de grabar si no conozco la cantidad de números de secuencia.

Mi conocimiento sobre la transferencia de imágenes / archivos es casi nulo. Nunca he programado algo así antes. Esperaba obtener algunos consejos y trucos =)

Muchas gracias.

También estoy usando QT, si eso ayuda a mi situación.

¿Fue útil?

Solución

Si usa un socket TCP, no necesita números de secuencia, porque TCP ya garantiza que los datos lleguen en el mismo orden en que se enviaron. Simplemente envíe los datos, y cuando termine cierre la conexión. Opcionalmente, puede usar algún tipo de encabezado de paquete autodefinido que proporcione información adicional (por ejemplo, si desea transmitir varios archivos a través de una conexión).

Otros consejos

Al menos para las imágenes, suponiendo que está utilizando QImage, puede usar un QDataStream para convertir su QImage en un QByteArray, que luego puede escribirse en el objeto QTcpSocket usando write (). Es posible serializar casi cualquiera de los tipos de datos de Qt en un QByteArray usando este método.

Para archivos generales, el dispositivo QIOD (base para QFile, entre otros) proporciona funciones de lectura como readAll (), que leerán el archivo completo en un QByteArray listo para que lo envíe.

Encontrará una serie de ejemplos de redes incluidos con la distribución Qt. Ver Asistente Qt - > Contenidos - > Tutoriales y ejemplos - > Red para más información.

Transfiérelos como lo haría con cualquier otro dato binario. send () , recv () . O cualquier abstracción que proporcione Qt.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top