[so] [SO] [Tema5] Nelămurire enunt
Cosmin Ratiu
cosminratiu at gmail.com
Thu May 28 19:20:41 EEST 2009
2009/5/28 mmdumi <mmdumi at gmail.com>
> Salut, just to be sure:
> - 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
> - pentru operatia de write: clientul primeste de la stdin 1000 de caractere
> pe care le trimite serverului sa le scrie in fisier.
> 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.
Pt. read, clientul trebuie sa afiseze la stdout ce a primit de la server.
Pt write _nu_ trebuie.
>
> - pentru ls: clientul asteapta mesaj de la server si scrie la stdout
Da.
>
>
> Se poate folosi vectored io pentru a trimite datele intre server / client ?
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.
>
> 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 ?
Pot aparea erori:
- se inchide socketul subit
- ia foc un cablu de retea intre server si client
- rusii ataca nuclear Europa si internetul se sectioneaza in 2 bucati.
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.
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+).
Cosmin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20090528/aad7f9f9/attachment.htm>
More information about the so
mailing list