Página 1 de 1

Enviar struturas complexas no Qt

MensagemEnviado: 22 Ago 2014 16:11
por mastk
Tenho uma estrutura tipo list e queria mandar ela por TCP para outro programa, mas o socket soh aceita strings e dados simples, alguma dica?

Re: Enviar struturas complex no Qt

MensagemEnviado: 22 Ago 2014 16:43
por andre_luis
Tem como postar um trecho do código ?

Não lembro bem dos métodos do Visual Studio do C++ ( suponho que seja esse o compilador configurado no seu IDE ), mas no Java dá pra manipular objetos da própria estrutura, pois há o tipo Object, de tal modo que há diversos métodos nativos disponiveis para trabalhar com ele, e pode ser que haja algum capaz de o converter em String.

Dá uma pesquizada nesse caminho...

Re: Enviar struturas complex no Qt

MensagemEnviado: 22 Ago 2014 20:50
por Red Neck Guy
serializa.

Re: Enviar struturas complexas no Qt

MensagemEnviado: 25 Ago 2014 08:54
por mastk
Código: Selecionar todos
QList<QString> Dado;

void enviaDado (void){
   SocketTCP->write(Dado);
}


O compilador reclama que nao eh uma operacao valida.

Re: Enviar struturas complexas no Qt

MensagemEnviado: 25 Ago 2014 18:58
por chipselect
não trabalho com QT, mas para persistir o tal do QList, precisa fazer um pouco de trabalho.

http://qt-project.org/doc/qt-4.8/datastreamformat.html

Uma outra manteira é converter o QList para uma representação em string e transmitir. Recebendo a codificação string, efetuar o processo inverso. Pra isso pode usar XML, JSON, etc. Só não sei se vai ter algo pronto para QT.

Também não conheço o QDataStream (persistência do QT) para persistir os dados mas, em tese, talvez pode ser construído passando o socket.

http://qt-project.org/forums/viewthread/18674

Re: Enviar struturas complexas no Qt

MensagemEnviado: 25 Ago 2014 21:14
por andre_luis
Não seria mais simples apenas pegar o conteúdo da lista e o enviar ?
Dá uma olhada nesses método pra ver se servem: toStdList , toVector

Re: Enviar struturas complexas no Qt

MensagemEnviado: 26 Ago 2014 20:58
por mastk
Tentei StdList e o error continuou, vou testar StdVector.