рдкрд░рд┐рдЪрдп
рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдордВрдЪреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ, рдореБрдЭреЗ рдРрд╕рд╛ рдЕрджреНрднреБрдд рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдорд┐рд▓рд╛ - "рдЬреАрд╡рди рдореЗрдВ рд╣рд░ рд╕реНрд╡рд╛рднрд┐рдорд╛рдиреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЪреИрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред" рддрдм рдореЗрд░реЗ рдЬреНрдЮрд╛рди рдиреЗ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреАред рдореИрдВ рдореБрд╕реНрдХреБрд░рд╛рдпрд╛ рдФрд░ рдЗрд╕ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЕрднреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ - рдореБрдЭреЗ рдЕрдкрдиреА рдЪреИрдЯ рд▓рд┐рдЦрдиреА рдкрдбрд╝реАред рдЦреИрд░, рдЪреВрдВрдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрд░реА рд░реБрдЪрд┐ рдХреНрдпреВрдЯреА-рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдзреНрдпрдпрди рдФрд░ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
Qt рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ QtNetwork рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдорд░реНрдерди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ .pro рдлрд╝рд╛рдЗрд▓ рдореЗрдВ qt + = рдиреЗрдЯрд╡рд░реНрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Qt рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдХрдИ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рдореБрдЦреНрдп рд╣реИрдВ: рдХреНрд╡реИрдбрдкреЙрдХреЗрдЯ рдФрд░ рдХреНрдпреВрдХрд╕реНрдкреЙрдХреЗрдЯред рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯреЛрдВ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЗ рд▓рд┐рдП рдХреНрд╡реИрдбрд╕рдХреЗрдЯ рдПрдХ рдбреЗрдЯрд╛рдЧреНрд░рд╛рдо рд╕реЙрдХреЗрдЯ рд╣реИред рдЗрд╕ рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдбреЗрдЯрд╛ рдХреЛ рдЬрд╛рдВрдЪреЗ рдмрд┐рдирд╛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдЖ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рджреВрд╕рд░реА рдУрд░, qcpSocket рдПрдХ рдмрд┐рдВрджреБ-рд╕реЗ-рдмрд┐рдВрджреБ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдФрд░ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЕрддрд┐рд░рд┐рдХреНрдд рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рджреЛрдиреЛрдВ рд╡рд░реНрдЧ QAbstractSocket рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВред QSslSocket рдХреНрд▓рд╛рд╕ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрд╕ рд╕рдордп рдЗрд╕рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдирд╣реАрдВ рдЫреБрдЖред
рдмрд╛рддрдЪреАрдд
рдЬрдм рдореИрдВрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рд╕рд╡рд╛рд▓ рдпрд╣ рдерд╛: "рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░реЗрдВрдЧреЗ?" рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдерд╛ рдХрд┐ рдЪреИрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдЪреИрдЯ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЪреИрдЯ рд╡рд┐рдВрдбреЛ рдФрд░ рдирд┐рдЬреА рд╕рдВрджреЗрд╢реЛрдВ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдерд╛ред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рд╕рдмрдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдерд╛ - рдХреЗрд╡рд▓ рдЯреАрд╕реАрдкреА рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреИрдХреЗрдЯ рдЖрдиреЗ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдЬрд╛рдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рддреЛ рдореБрдЦреНрдп рдЪреИрдЯ рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рдереАрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЪреИрдЯ рдореЗрдВ рдХреЛрдИ рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИред рд╣рд╛рдВ, рдФрд░ рдЕрдЧрд░ рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдЯреАрд╕реАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдВрджрд░рдЧрд╛рд╣ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдЬреЛ рдереЛрдбрд╝рд╛ рдЙрдкрд░рд┐ рд╣реИред рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдЯреАрд╕реАрдкреА рдирд╣реАрдВ, рддреЛ рдпреВрдбреАрдкреА! рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдирдХрд░, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рдкреЛрд░реНрдЯ рдкрд░ рд╕рднреА рдХреЛ рднреЗрдЬрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдХреБрдЫ рдЪреИрдЯ рдореИрд╕реЗрдЬ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрддрдирд╛ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
QUdpSocket
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдХреНрд╡реИрдбрдкреЙрдХреЗрдЯ рд╢реНрд░реЗрдгреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд╣рдо рдПрдХ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рд╕реЗ рдмрд╛рдВрдзрддреЗ рд╣реИрдВ, QIODevice рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд┐рдЧреНрдирд▓ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреЛрд░реНрдЯ рдкрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдЖрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
UdpChat(QString nick, int port) {
nickname = nick;
socket = new QUdpSocket( this );
_port = port;
socket->bind(QHostAddress::Any, port);
// //
connect(socket, SIGNAL(readyRead()), SLOT(read()));
}
* This source code was highlighted with Source Code Highlighter .
рдореИрдВ рдХреЛрдб рдХреЗ рдЕрдЧрд▓реЗ рдмреНрд▓реЙрдХ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рднреА рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪреИрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рд╣рдо рд╕рд┐рд░реНрдл рдПрдХ рдкреНрд░рд╕рд╛рд░рдг рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рд▓реЛрдЧреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо "рдХреМрди рдСрдирд▓рд╛рдЗрди рд╣реИ?" рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬрд╝ рднреЗрдЬреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕рдВрджреЗрд╢ рдкрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ "I" рднреЗрдЬреЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рд╣реЛрдВрдЧреЗ:
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдирд┐рдпрдорд┐рдд рд╕рдВрджреЗрд╢
- рд╕рдВрджреЗрд╢ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдСрдирд▓рд╛рдЗрди
- рд╕рдВрджреЗрд╢ - рдСрдирд▓рд╛рдЗрди рдХреМрди рд╣реИ?
рдирддреАрдЬрддрди, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
void send(QString str, qint8 type) {
QByteArray data;
QDataStream out (&data, QIODevice::WriteOnly);
out << qint64(0);
out << qint8(type);
out << str;
out .device()->seek(qint64(0));
out << qint64(data.size() - sizeof (qint64));
socket->writeDatagram(data, QHostAddress::Broadcast, _port);
}
void read() {
QByteArray datagram;
datagram.resize(socket->pendingDatagramSize());
QHostAddress *address = new QHostAddress();
socket->readDatagram(datagram.data(), datagram.size(), address);
QDataStream in (&datagram, QIODevice::ReadOnly);
qint64 size = -1;
if ( in .device()->size() > sizeof (qint64)) {
in >> size;
} else return ;
if ( in .device()->size() - sizeof (qint64) < size) return ;
qint8 type = 0;
in >> type;
if (type == USUAL_MESSAGE) {
QString str;
in >> str;
// //
} else if (type == PERSON_ONLINE) {
// QHostAddress //
} else if (type == WHO_IS_ONLINE) {
sending(nickname, qint8(PERSON_ONLINE));
}
}
* This source code was highlighted with Source Code Highlighter .
рд╕рдм рдХреБрдЫ рдкрд╛рд░рджрд░реНрд╢реА рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдмрдиреНрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ, рд╕рднреА рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдореБрдЦреНрдп рдЪреИрдЯ рд╡рд┐рдВрдбреЛ рддреИрдпрд╛рд░ рд╣реИред
QTcpSocket
рдЗрд╕ рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рддрд░рд╣ рдмрди рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд╣ рдХрд┐рд╕реА рдХреЛ рдирд┐рдЬреА рд╕рдВрджреЗрд╢ рд▓рд┐рдЦрдиреЗ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдпрд╛ рдореБрд╡рдХреНрдХрд┐рд▓ рджреНрд╡рд╛рд░рд╛, рдпрджрд┐ рд╡реЗ рдЙрд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдЬреА рддреМрд░ рдкрд░ рд▓рд┐рдЦрддреЗ рдереЗред
рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдореЗрдВ рдХреЛрдИ рдХрдард┐рдирд╛рдИ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдлрд╛рдЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЯреНрд░рд┐рдХ рдХрд░реЗрдВрдЧреЗред рдЪреВрдБрдХрд┐ рдкреВрд░реА рдлрд╛рдЗрд▓ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдзрдХреЗрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдлрд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝реЗрдЧрд╛ рдФрд░ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдкрд╛рд░реНрдЯрд╡рд╛рдЗрдЬрд╝ рд▓рд┐рдЦреЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рднреЗрдЬреЗрдЧрд╛ред
void sendFile(QString fileName) {
if (sendFile != NULL){
return ;
}
sendFile = new QFile(fileName);
if (sendFile->open(QFile::ReadOnly)){
QByteArray data;
QDataStream out (&data, QIODevice::WriteOnly);
// //
clientSocket->write(data);
clientSocket->waitForBytesWritten();
connect(clientSocket, SIGNAL(bytesWritten(qint64)), this , SLOT(sendPartOfFile()));
sendPartOfFile();
} else {
emit this ->errorSendFile(QString( "File not can open for read" ));
return ;
}
}
void sendPartOfFile() {
char block[SIZE_BLOCK_FOR_SEND_FILE];
if (!sendFile->atEnd()){
qint64 in = sendFile->read(block, sizeof (block));
qint64 send = clientSocket->write(block, in );
} else {
sendFile->close();
sendFile = NULL;
disconnect(clientSocket, SIGNAL(bytesWritten(qint64)), this , SLOT(sendPartOfFile()));
emit endSendFile();
}
}
* This source code was highlighted with Source Code Highlighter .
рдпрд╣ рдзрд╛рд░рд╛ рдХреЛ рдкрдврд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдЪреВрдВрдХрд┐ рдХреЗрд╡рд▓ 2 рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЖрддреЗ рд╣реИрдВ - рдореЗрд╕реЗрдЬ рдФрд░ рд╕реЗрдВрдбрд░, рдПрдХ рдирд┐рдпрдорд┐рдд рдЗрдирдкреБрдЯ рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд░реНрдЧ рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬреЛ рдпреВрдбреАрдкреА рд╕реЙрдХреЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдмреНрдпрд╛рдЬ рдХреА рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреА рдзрд╛рд░рд╛ рд╕реЗ рдкрдврд╝ рд░рд╣рд╛ рд╣реИред
void receiveFile(QString fileName) {
QString savePath = "Downloads/" ;
QDir dir;
dir.mkpath(savePath);
receiveFile = new QFile(savePath + fileName);
sizeReceivedData = 0;
receiveFile();
}
void receiveFile() {
QDataStream in (clientSocket);
if (!bufferForUnreadData.isEmpty()){
receiveFile->write(bufferForUnreadData);
sizeReceivedData += bufferForUnreadData.size();
bufferForUnreadData.clear();
}
char block[SIZE_BLOCK_FOR_SEND_FILE];
while (! in .atEnd()){
qint64 toFile = in .readRawData(block, sizeof (block));
sizeReceivedData += toFile;
receiveFile->write(block, toFile);
}
if (sizeReceivedData == sizeReceiveFile){
receiveFile->close();
receiveFile = NULL;
sizeReceiveFile = 0;
sizeReceivedData = 0;
}
}
* This source code was highlighted with Source Code Highlighter .
рдпрд╣ рдирд┐рдЬреА рд╕рдВрджреЗрд╢ рдХрд╛ рд╕рд╛рд░ рд╣реИред рдмреЗрд╢рдХ, рд╕рд┐рдЧреНрдирд▓, рдХрдиреЗрдХреНрд╢рди рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдХреА рдХрдореА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рднреЗрдЬрдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рд╣реИред рдмрд╣реБрдд рдХреБрдЫ рдЫреВрдЯ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╕рдм рдХреБрдЫ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рддреЗрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪреИрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдиреЗ рд▓рд┐рдЦрд╛ рдерд╛ред
рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдирд╛ рдерд╛ рдХрд┐ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рд░рд▓ рдФрд░ рдЖрд╕рд╛рди рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред рд╕реМрднрд╛рдЧреНрдп рд╣реИред