<br><div class="gmail_quote">2009/5/28 mmdumi <span dir="ltr"><<a href="mailto:mmdumi@gmail.com">mmdumi@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Salut, just to be sure:<br>- pentru operatia de read: clientul ii spune serverului ca vrea sa citeasca din fisierul x de la offset , len caractere. serverul executa operatia si trimite rezultatul clientului<br>- pentru operatia de write: clientul primeste de la stdin 1000 de caractere pe care le trimite serverului sa le scrie in fisier.<br>
Dupa ce trimite mesajul, clientul scrie la stdout ce a citit/trimis la server? sau clientul asteapta sa primeasca de la server un mesaj cu aceelasi caractere pe care le-a scris in fisier, apoi le scrie si el (clientul) la stdout.</blockquote>
<div>Pt. read, clientul trebuie sa afiseze la stdout ce a primit de la server.<br>Pt write _nu_ trebuie.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br clear="all">
- pentru ls: clientul asteapta mesaj de la server si scrie la stdout</blockquote><div>Da.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><br>Se poate folosi vectored io pentru a trimite datele intre server / client ?</blockquote><div>In principiu vectored io e util atunci cand lucrezi cu buffere mari imprastiate prin memorie si vrei sa eviti copierea inutila a datelor intr-un singur buffer inainte de a face ceva cu el (scriere) sau cand ai de citit multe date si fragmentarea memoriei poate constitui o problema. Tu decizi in functie de implementarea ta, dar nu e stricta nevoie.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>Sa presupunem ca folosesc vectored io, si am un vector de 3000 de charuri in care se va afla informatia venita de la stdin, in cazul clientului. In momentul in care fac writev nu mai am de ce sa imi bat capul ca nu se trimite tot mesajul, pentru ca se ocupa writev de asta ?</blockquote>
<div>Pot aparea erori:<br> - se inchide socketul subit<br> - ia foc un cablu de retea intre server si client<br> - rusii ataca nuclear Europa si internetul se sectioneaza in 2 bucati.<br></div></div><br>Ma rog, chiar daca testul se face pe localhost si nu sunt cabluri de retea sau rusi implicati, e bine sa nu presupui ca writev va reusi intotdeauna.<br>
In plus, nu e recomandat sa citesti tot fisierul dintr-un foc si sa il trimiti. Chiar daca in teste nu se folosesc fisiere mari, approach-ul asta nu va merge pt. ele (gandeste-te la fisiere de 4 GB+).<br><br>Cosmin.<br>