Reading a file with Qt
-
Yes I have this problem because I noticed that if my file size is larger than 65535 bytes, the server does not receive all the information. But how do we solve this problem?
Then if I use Qdatastream this to first write the identifier of my message because the one that says if it is a text message (5), if it is a new connection (3), if it is a disconnect (4) and for the file the identifier value is (7) to tell the server that it is a file. Here the QDATASTREAM allows me to write a screen like this:
*Message size
*Identifier
*Message
So if I don't use a Qdatastream how can I write in my QByteArray?
Translated with www.DeepL.com/Translator
-
Yes I have this problem because I noticed that if my file size is larger than 65535 bytes, the server does not receive all the information. But how do we solve this problem?
Then if I use Qdatastream this to first write the identifier of my message because the one that says if it is a text message (5), if it is a new connection (3), if it is a disconnect (4) and for the file the identifier value is (7) to tell the server that it is a file. Here the QDATASTREAM allows me to write a screen like this:
*Message size
*Identifier
*Message
So if I don't use a Qdatastream how can I write in my QByteArray?
Translated with www.DeepL.com/Translator
-
Concretely I want my client to send a file to my server and the server after receiving the file, that it sends this file to all the client that are connected to it.
Because it is a chat software then I also want the client to be able to send a file to another client via a server. -
Please take a look at the examples (again...) how to send large data ... http://doc.qt.io/qt-5/qtnetwork-loopback-example.html
-
Hi,
after several studies of the example given by the Qt documentation, I don't know where and how to send my file to the server?then in the example given by the Qt documentation, just sends the same 64KB packet several times until it tints 50MB . and the server and the client are in the same project but in my case the client and the server are different projects
-
Hi,
Are you writing both the client and server parts ?
-
It was regarding your last remark about the server and client being in the same project. Since you are writing both, then it doesn't matter that they are in different projects.
-
Hey, everybody,
Still in the example given by the Qt documentation for the exchange of large documents between the client and the server in a chatt software, I could separate the client and the server in different projects which is not the case in the example given by the Qt documentation.
So here's my question:
Just that there I do not know how to adapt this example to my chatt software to be able to send large files between client and server?
Translated with www.DeepL.com/Translator
-
There's nothing special to do, if you implement the client and the server the same way as the exemple, then it's also going to work the same.
-
@EL-jos
Hi
As mr @Christian-Ehrlicher noted higher up.
You are using quint16 for size handling
Try
#include <limits.h>
qDebug() << std::numeric_limits<quint16>::max();and you will see the magic 65535 as maximum value.
-
Yes you are right but except that 65535 makes a maximum size of 64Ko or me I want to send voluminous documents of the order of 30Mo to even 50Mo
-
Yes you are right but except that 65535 makes a maximum size of 64Ko or me I want to send voluminous documents of the order of 30Mo to even 50Mo
@EL-jos said in Reading a file with Qt:
65535 makes a maximum size of 64Ko or me I want to send voluminous documents of the order of 30Mo to even 50Mo
Then you cannot use quint16. It is too small.
Use quint32 or even quint64 instead.
EDIT: @mrjj beat me to it!
-
Hey, everybody.
I was able to solve my problem thanks to your advice, now I am able to send large document in my chatt software but there is a new problem that arises, here is the problem: Which class should I use to send a video file in my chatt software?
Example: for image exchange, I used the class QImage(Stream for image)but now what class used for Video(Stream video)? -
Hey, everybody.
I was able to solve my problem thanks to your advice, now I am able to send large document in my chatt software but there is a new problem that arises, here is the problem: Which class should I use to send a video file in my chatt software?
Example: for image exchange, I used the class QImage(Stream for image)but now what class used for Video(Stream video)?@EL-jos If it is a file then simply send the binary content of the file.
There is no need to use a dedicated class for each and every data type.
https://stackoverflow.com/questions/30288385/how-to-send-a-file-in-qt -
Why should a file not be supported if you just send it byte-by-byte? if you store it on a harddisk, it does not matter for the hard disk which file type it is. Its just a number of bytes.
Same happens when you send it over network.
Regards