[so] Lucrare de curs #4 (CA, CC)

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Wed May 14 23:21:44 EEST 2014


Victor Dodon <dodonvictor at gmail.com> writes:
> Deși am fost varianta 2, am o mică neclaritate cu privire la răspunsul
> la întrebarea 2 de la varianta 1. Se spune că apelul send "Întoarce 0
> octeți dacă celălalt capăt (recv, receptorul) a închis conexiunea".
> Din ce știu eu, recv returnează 0 când celălalt capăt a închis
> conexiunea, în timp ce send nu poate returna 0 și nu detectează dacă
> celălalt capăt a închis conexiunea, așa cum se poate vedea și în
> exemplul de la [1] și [2]. Dacă socketul este blocant și s-au pus
> octeți în bufferul kernelului, atunci este întors un număr stric
> pozitiv, dacă buffer e plin, operația se blocheză până se trimite
> ceva, deci se va întoarce tot un număr stric pozitiv, altfel în caz de
> eroare, e returnat -1. Dacă socketul este nonblocant sau se precizează
> flagul MSG_DONTWAIT, este returnat numărul efectiv de octeți trimiși
> fără a se bloca sau -1.
>
> [1] http://pastebin.com/uz6PKeAD
> [2] http://pastebin.com/A0sESi0w

Ai dreptate, am corectat în rezolvare[3].

[3] http://ocw.cs.pub.ro/courses/so/meta/examen#lucrare_4

Răzvan


More information about the so mailing list