2015-05-25 13:40 GMT+03:00 Georgiana Diana <[email protected]>: > > > 2015-05-25 13:12 GMT+03:00 Adrian Stanciu <[email protected]>: >> >> 2015-05-25 12:31 GMT+03:00 Georgiana Diana via so <[email protected]>: >> > Salut, >> > Atunci cand raspundem unui request de la un client, trebuie sa trimitem >> > si >> > un antet HTTP (200 sau 404, dupa caz), dupa care sa trimitem fisierul. >> > Am >> > doua intrebari legate de acest lucru: >> > >> > 1) Este okay sa trimitem antetul cu functia send [1] (prin apeluri >> > repetate, >> > pentru ca socket-ul nu permite o dimensiune foarte mare a bufferului) >> > sau >> > exista un mod mai elegant de a face acest lucru ? >> >> Da, este ok. Pe Windows, TransmitFile() are un parametru >> lpTransmitBuffers pentru a preciza un header/trailer. >> >> > 2) Daca trimit mai intai antetul si apoi fisierul, atunci cand se >> > compara >> > fisierul obtinut de client si cel initial, trimis de server, cmp >> > esueaza, >> > pentru ca in fisierul primit de client se afla si antetul. Am vazut ca >> > in >> > testele care testeaza (scuze de repetare) existenta antetului (de ex, >> > testul >> > 13), se foloseste redirectare catre un fisier, iar testele care compara >> > cele >> > doua fisiere (sursa si destinatie), folosesc wget (de ex, testul 17). Nu >> > imi >> > dau seama cum sa rezolv aceasta problema, anume faptul ca apare si >> > antetul >> > HTTP in fisierul primit de client. >> >> wget nu ar trebui să salveze răspunsul HTTP în fișier. Asigură-te că >> răspunsul HTTP trimis de tine este corect și conține: >> * linia de status >> * header-ele Content-Type, Content-Length, Connection >> * linie goală (CRLF) >> >> Vezi exemple de headere HTTP la [2]. >> Dacă problema nu este de aici, revin-o cu mai multe detalii. >> >> > >> > [1] http://linux.die.net/man/3/send >> > >> >> [2] http://elf.cs.pub.ro/so/res/teme/tema5-util/http-parser/test.c >> >> Adrian > > > Salut, > Mersi de raspuns, am rezolvat problema :) La header era baiul, trimiteam un > dummy header si am uitat sa adaug lungimea efectiva a fisierului trimis. Am > modificat Content-type sa fie "application/octet-stream". Este okay tipul > asta ? >
Este bun. Adrian _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
