Pergunta

Eu tenho algumas perguntas sobre o envio de imagens via.

Como posso lidar com diferentes tipos de arquivos, JPEG, PNG, etc.

Se o arquivo é grande, eu ave de usar números de seqüência ... mas eu não sei como parar recving se eu não sei o número de números de seqüência.

O meu conhecimento de transferência de imagens / arquivos é ao lado nenhum. Eu nunca programou nada parecido antes. Estava esperando para obter algumas dicas e truques =)

Muito obrigado.

Também estou usando QT, se isso ajuda a minha situação em tudo.

Foi útil?

Solução

Se você usa um soquete TCP, você não precisa de números de seqüência, porque TCP já garante que os dados chegam na mesma ordem em que onde enviar. Basta enviar os dados, e quando feito fechar a conexão. Opcionalmente, você pode usar algum tipo de auto-definido de cabeçalho do pacote que fornece informações adicionais (por exemplo, se você quiser transmitir múltiplos arquivos em uma conexão).

Outras dicas

Para imagens, pelo menos, supondo que você está usando QImage, você pode usar um QDataStream para converter seu QImage a um QByteArray, que pode então ser escrito para o objeto QTcpSocket usando write (). É possível serializar praticamente qualquer um dos tipos de dados do Qt em um QByteArray usando este método.

Para arquivos gerais, o QIODevice (base para QFile, entre outros) fornece funções ler tais como readAll (), que irá ler o arquivo inteiro em uma QByteArray pronto para você enviar.

Você vai encontrar uma série de exemplos de rede incluídos com a distribuição Qt. Veja Qt Assistant -> Índice -> Tutoriais e Exemplos -.> Rede para mais informações

Transferi-los como faria com qualquer outro dados binários. send(), recv(). Ou qualquer abstração Qt fornece.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top