@@ -11,6 +11,7 @@ Reciver::Reciver(QObject *parent)
1111 Recive = nullptr
1212 , Sender = nullptr ;
1313}
14+
1415QString file_len{" " };
1516qsizetype file_len_int{0 };
1617
@@ -19,18 +20,17 @@ QString extractName(QByteArray& full){
1920 int count{0 };
2021 qsizetype index_name{0 };
2122 for (;count != 2 ;++index_name){
22- // qDebug() << index_name;
23+
24+
2325 if (full[index_name] == ' \n ' ){
2426 ++count;
2527 }
2628 }
27- // qDebug() << index_name;
2829
2930 ++index_name;
3031 for (;full[index_name] != ' ' ;++index_name);
3132 QString name{" " };
3233 for (;full[index_name] != ' \r ' ;++index_name){
33- // qDebug() << index_name;
3434 name += full[index_name];
3535 }
3636
@@ -40,57 +40,34 @@ QString extractName(QByteArray& full){
4040 file_len += full[index_name];
4141 }
4242
43- // qDebug() << file_len;
4443 bool ok;
4544 file_len_int += qsizetype (file_len.toInt (&ok));
46- // qDebug() << file_len_int;
47- /*
48- for (int i{0};i<name.length()/2;++i){
49- auto tmp = name[i];
50- name[i] = name[name.length() - 1 - i];
51- name[name.length() - 1 - i] = tmp;
52- }
53- */
5445
5546 return name;
5647}
5748
5849void Reciver::NewConnection (){
5950 Sender = Recive->nextPendingConnection ();
6051 QObject::connect (Sender , &QTcpSocket::readyRead , this , &Reciver::ReadyRead);
61- // qDebug() << Sender->size();
6252 emit reciving ();
6353}
6454
6555bool nameGotten{false };
6656
6757void Reciver::ReadyRead (){
68- /* debugger
69- QByteArray* smth {new QByteArray(Sender->readAll())};
70-
7158
72- qDebug() << *smth;
73- delete smth;
74- */
75-
76- // qDebug() << Sender->readAll();
77- // QByteArray* file_info{new QByteArray(Sender->readAll())};
78- // qDebug() << Sender->size();
7959 if (!nameGotten){
8060 file_len_int -= Sender->size ();
8161 QByteArray first_time {Sender->readAll ()};
8262 QString filename{extractName (first_time)};
8363
8464 save_path += ' /' + filename;
8565 nameGotten = !nameGotten;
86- // qDebug() << first_time;
8766 QFile file (save_path);
8867 bool file_made = file.open (QIODevice::Append);
8968 if (!file_made){
9069 file.close ();
91- // delete filewrite;
92- // delete file;
93- // delete file_info;
70+
9471 emit file_failed ();
9572 return ;
9673 }
@@ -112,23 +89,19 @@ void Reciver::ReadyRead(){
11289 }
11390 }else {
11491 file_len_int -= Sender->size ();
115- // qDebug() << Sender->size();
11692 QFile file (save_path);
11793
11894 bool file_made = file.open (QIODevice::Append);
11995 if (!file_made){
12096 file.close ();
121- // delete filewrite;
122- // delete file;
123- // delete file_info;
97+
12498 emit file_failed ();
12599 return ;
126100 }
127101
128102 file.write (Sender->readAll ());
129103
130104 file.close ();
131- // qDebug() << file_len_int;
132105 if (file_len_int <= 0 ){
133106 QByteArray response;
134107 response.append (" HTTP/1.1 200 OK\r\n " ); // status line
@@ -142,14 +115,59 @@ void Reciver::ReadyRead(){
142115 }
143116 }
144117
145- // delete filewrite;
146- // delete file;
147- // delete file_info;
148118
119+ }
149120
150- // emit recived();
121+ void Reciver::start (QString save_path){
122+ if (nameGotten){
123+ nameGotten = !nameGotten;
124+ }
125+ if (Sender != nullptr ){
126+ Sender->close ();
127+ Sender->deleteLater ();
128+ }
129+ if (Recive != nullptr ){
130+ delete Recive;
131+ Recive = new QTcpServer (this );
132+ QObject::connect (Recive , &QTcpServer::newConnection , this , &Reciver::NewConnection);
133+ }else {
134+ Recive = new QTcpServer (this );
135+ QObject::connect (Recive , &QTcpServer::newConnection , this , &Reciver::NewConnection);
136+ }
137+
138+ this ->save_path = QUrl (save_path).toLocalFile ();
139+ QUdpSocket socket;
140+ socket.connectToHost (" 8.8.8.8" , 80 ); // google DNS, or something else reliable for getting local IPv4
141+ auto IPv4 = socket.localAddress ().toString ();
142+ qDebug () << IPv4;
143+ socket.close ();
144+ emit ipv (IPv4);
145+
146+ bool is_ready{
147+ Recive->listen (QHostAddress (IPv4) , 9090 )
148+ };
151149
152- /*
150+ if (is_ready){
151+ emit recive_active ();
152+ }else {
153+ delete Recive;
154+ emit recive_failed_active ();
155+ return ;
156+ }
157+ }
158+
159+ // / Garbage dump:
160+ // /
161+ // /
162+ // / //qDebug() << save_path << this->save_path;
163+ // / //delete filewrite;
164+ // delete file;
165+ // delete file_info;
166+
167+
168+ // emit recived();
169+
170+ /*
153171 QByteArray* filewrite{new QByteArray};
154172
155173 //qDebug() << *file_info;
@@ -199,43 +217,40 @@ void Reciver::ReadyRead(){
199217
200218 emit recived();
201219*/
202- }
220+ // delete filewrite;
221+ // delete file;
222+ // delete file_info;
223+ // qDebug() << file_len_int;
224+ // qDebug() << Sender->size();
225+ // delete filewrite;
226+ // delete file;
227+ // delete file_info;
228+ // qDebug() << first_time;
229+ /* debugger
230+ QByteArray* smth {new QByteArray(Sender->readAll())};
203231
204- void Reciver::start (QString save_path){
205- if (nameGotten){
206- nameGotten = !nameGotten;
207- }
208- if (Sender != nullptr ){
209- Sender->close ();
210- Sender->deleteLater ();
211- }
212- if (Recive != nullptr ){
213- delete Recive;
214- Recive = new QTcpServer (this );
215- QObject::connect (Recive , &QTcpServer::newConnection , this , &Reciver::NewConnection);
216- }else {
217- Recive = new QTcpServer (this );
218- QObject::connect (Recive , &QTcpServer::newConnection , this , &Reciver::NewConnection);
232+
233+ qDebug() << *smth;
234+ delete smth;
235+ */
236+
237+ // qDebug() << Sender->readAll();
238+ // QByteArray* file_info{new QByteArray(Sender->readAll())};
239+ // qDebug() << Sender->size();
240+ // qDebug() << file_len_int;
241+ /*
242+ for (int i{0};i<name.length()/2;++i){
243+ auto tmp = name[i];
244+ name[i] = name[name.length() - 1 - i];
245+ name[name.length() - 1 - i] = tmp;
219246 }
247+ */
248+ // qDebug() << Sender->size();
249+ // qDebug() << file_len;
250+ // qDebug() << index_name;
251+ // qDebug() << index_name;
252+ // qDebug() << index_name;
253+
220254
221- // qDebug() << save_path << this->save_path;
222- this ->save_path = QUrl (save_path).toLocalFile ();
223- QUdpSocket socket;
224- socket.connectToHost (" 8.8.8.8" , 80 ); // google DNS, or something else reliable for getting local IPv4
225- auto IPv4 = socket.localAddress ().toString ();
226- qDebug () << IPv4;
227- socket.close ();
228- emit ipv (IPv4);
229255
230- bool is_ready{
231- Recive->listen (QHostAddress (IPv4) , 9090 )
232- };
233256
234- if (is_ready){
235- emit recive_active ();
236- }else {
237- delete Recive;
238- emit recive_failed_active ();
239- return ;
240- }
241- }
0 commit comments