[so2] [Tema 5] Nelamurire bind, connect si aflare adrese

Georgiana Diana geodiana93 at gmail.com
Fri May 20 12:07:52 EEST 2016


2016-05-20 12:03 GMT+03:00 Razvan Deaconescu via so2 <so2 at cursuri.cs.pub.ro>
:

> Georgiana Diana <geodiana93 at gmail.com> writes:
> > 2016-05-19 22:41 GMT+03:00 Razvan Deaconescu via so2 <
> so2 at cursuri.cs.pub.ro>:
> >> Georgiana Diana via so2 <so2 at cursuri.cs.pub.ro> writes:
> >> > Trecand de bind si connect si ajungand la send/sendto/sendmsg, am din
> >> nou o
> >> > intrebare:
> >> >
> >> > Este vreo diferenta intre sendmsg si sendto, in ceea ce priveste
> cazurile
> >> > de eroare ce ar trebui tratate sau campurile din struct msghdr (il voi
> >> nota
> >> > m) care sunt populate de cele doua apeluri ?
> >> >
> >> > Erorile pentru ambele as zice ca sunt urmatoarele:
> >> > - socket conectat, dar campul m->msg_name setat => -EISCONN,
> conform[3];
> >> > - socket neconectat, dar campul m->msg_name nesetat => -ENOTCONN,
> >> > conform[3];
> >> > - (-1) pentru erori interne, conform[3].
> >>
> >> Păi nu ai nevoie de vreo implementare de sendto, folosești doar
> >> sendmsg. La fel, folosești doar recvmsg. Poate e ceva ce nu înțeleg din
> >> ce întrebi.
> >
> > Dap, stiu ca toate trei functiile de send/receive sunt tratate in
> > sendmsg/recvmsg, dar nu mi-era foarte clar daca exista vreo diferenta in
> > felul in care sunt setate campurile din structurile primite ca parametru
> > sau daca exista vreo diferenta in codurile de eroare ce ar trebui
> intoarse,
> > in functie de functia apelata din user space, ...
> >
> >> > Cat despre campurile ce vor contine mesajul efectiv, din cate inteleg
> din
> >> > [3], toate cele trei functii (send, sendmsg, sendto) lucreaza cu
> >> m->msg_iov
> >> > pentru a retine bufferul de trimis. Corect ?
> >>
> >> Da.
> >
> > ... , dar din cate inteleg din raspunsul tau, nu ar fi, iar diferenta
> > dintre apelul sendmsg si sendto din user space ar fi aceea ca folosind
> > sendmsg poti seta in msghdr-ul trimis si campurile de control ale
> mesajului
> > ?
>
> Nu înțeleg ce mă întrebi. Implementările din kernel (sendmsg și recvmsg)
> folosesc structura de tipul msghdr.
>
> Poți presupune că toate pachetele au configurat câmpul msg_name. Dacă
> nu-l au, e o problemă.
>

Exact asta intrebam, m-am lamurit :)


>
> Nu sunt convins că am ajutat cu răspunsul. Dacă e cazul, să clarifici,
> te rog, întrebarea.
>
> >> >> [3] http://linux.die.net/man/2/sendto
>
> Răzvan
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii
>



-- 
*Georgiana Diana Ciocirdel*
Polytechnic University of Bucharest,
Computer Science
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20160520/6c040935/attachment.html>


More information about the so2 mailing list