Salut, Am reusit sa rezolv problema asta intre timp. Las la [1] link-ul unde am inteles care a fost problema. Pe scurt, din ce am inteles, netcat anunta ca este gata sa opreasca conexiunea, dar server-ul considera ca s-a si deconectat si dadea drop conexiunii. Acum in momentul in care recv intoarce 0, nu inchid imediat conexiunea, verific in ce stadiu este conexiunea (am o masina de stari cum este recomandat in enuntul temei), si inchid conexiunea dupa ce a fost trimis tot fisierul.
Acum am probleme cu testul 16. Uneori merge, alteori nu merge. Acest test foloseste wget. Cand nu merge, mesajul intors de wget este "Read error (Connection reset by peer) in headers." Interesant este ca daca adaug flag-ul '-d' comenzii wget, testul trece mereu (am testat cu 100 de rulari succesive, fara '-d' merge foarte rar). Flag-ul acesta ar trebui doar sa produca mai mult output, dar cumva face mai mult. Numai bine, George [1] https://stackoverflow.com/questions/41776718/what-exactly-does-the-q-option-of-netcat-do În vin., 17 mai 2019 la 15:12, Razvan Crainea <[email protected]> a scris: > > Salut, George! > > Poți face un trace pcap (folosind wireshark sau tcpdump) pe portul > 8888, să vedem exact comunicația TCP între client și server? > > Numai bine, > Răzvan > > On Fri, May 17, 2019 at 1:28 AM George Diaconu via so > <[email protected]> wrote: > > > > Salut, > > > > Am o problema la testul 13. Checker-ul executa urmatoarea comanda: > > echo -ne "GET /static/small00.dat HTTP/1.0\r\n\r\n" | nc -q 1 > > 192.168.169.128 8888 > > > > Inteleg de aici ca cere fisierul /static/small00.dat. > > Problema mea este ca dupa ce clientul trimite toata cererea (unesc > > bucatile trimise de client), server-ul apuca sa parseze cererea, dar > > apoi client-ul inchide conexiunea fara sa mai astepte raspunsul. > > Am reusit sa reduc problema la parametrul '-q 1' al comenzii 'nc'. In > > manual scrie ca acest parametru face ca 'nc' sa mai astepte o secunda > > dupa ce a primit EOF de la stdin, si apoi se inchide. > > Am incercat cu '-q 5' si am observat ca server-ul scrie mesajul de la > > deconectarea cleintului inainte ca 'nc' sa isi termine executia. Asta > > ma face sa trag concluzia ca nc inchide conexiunea mult prea devreme. > > Restul testelor de la static merg fara probleme. > > > > De asemenea, in momentul in care trimit raspunsul, intai raspund cu > > HTTP/1.1 200 OK si apoi incep sa trimit fisierul. De asemenea, verific > > ca raspunsul sa fie trimis in intregime, si trimit pe bucati daca nu > > poate fi trimis tot o data. > > > > Nu inteleg unde gresesc, mai ales ca restul testellor trec fara probleme. > > > > Multumesc anticipat. > > _______________________________________________ > > http://ocw.cs.pub.ro/courses/so/info/lista-discutii > > > > -- > Răzvan Crainea _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
