Qt рдореЗрдВ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

рдкрд░рд┐рдЪрдп



рдЫрд╡рд┐

рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдордВрдЪреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ, рдореБрдЭреЗ рдРрд╕рд╛ рдЕрджреНрднреБрдд рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдорд┐рд▓рд╛ - "рдЬреАрд╡рди рдореЗрдВ рд╣рд░ рд╕реНрд╡рд╛рднрд┐рдорд╛рдиреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЪреИрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред" рддрдм рдореЗрд░реЗ рдЬреНрдЮрд╛рди рдиреЗ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреАред рдореИрдВ рдореБрд╕реНрдХреБрд░рд╛рдпрд╛ рдФрд░ рдЗрд╕ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЕрднреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ - рдореБрдЭреЗ рдЕрдкрдиреА рдЪреИрдЯ рд▓рд┐рдЦрдиреА рдкрдбрд╝реАред рдЦреИрд░, рдЪреВрдВрдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрд░реА рд░реБрдЪрд┐ рдХреНрдпреВрдЯреА-рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдзреНрдпрдпрди рдФрд░ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



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 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рд╣реЛрдВрдЧреЗ:

  1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдирд┐рдпрдорд┐рдд рд╕рдВрджреЗрд╢
  2. рд╕рдВрджреЗрд╢ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдСрдирд▓рд╛рдЗрди
  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 .






рдпрд╣ рдирд┐рдЬреА рд╕рдВрджреЗрд╢ рдХрд╛ рд╕рд╛рд░ рд╣реИред рдмреЗрд╢рдХ, рд╕рд┐рдЧреНрдирд▓, рдХрдиреЗрдХреНрд╢рди рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдХреА рдХрдореА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рднреЗрдЬрдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рд╣реИред рдмрд╣реБрдд рдХреБрдЫ рдЫреВрдЯ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╕рдм рдХреБрдЫ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рддреЗрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪреИрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдиреЗ рд▓рд┐рдЦрд╛ рдерд╛ред



рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдирд╛ рдерд╛ рдХрд┐ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рд░рд▓ рдФрд░ рдЖрд╕рд╛рди рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред рд╕реМрднрд╛рдЧреНрдп рд╣реИред



All Articles