[so] [SO][Tema 5][Linux] netcat opreste conexiunea prea devreme
George Diaconu
pgn.george at gmail.com
Fri May 17 16:48:47 EEST 2019
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
<razvan.crainea at gmail.com> 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
> <so at cursuri.cs.pub.ro> 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
More information about the so
mailing list