Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so2:laboratoare:lab10 [2018/05/02 10:21]
silvia.pripoae [Noțiuni teoretice]
so2:laboratoare:lab10 [2019/05/06 10:20] (current)
liza_elena.babu [Structura socket]
Line 258: Line 258:
  int (*getname) ​  ​(struct socket *sock,  int (*getname) ​  ​(struct socket *sock,
        struct sockaddr *addr,        struct sockaddr *addr,
-       ​int *sockaddr_len, ​int peer);+       int peer);
  //...  //...
 </​code>​ </​code>​
Line 271: Line 271:
 </​code>​ </​code>​
  
-Se va realiza astfel instanțierea pointerilor de funcții cu apeluri specifice tipului de protocol asociat socket-ului. Apelurile [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​net/​socket.c#​L2512|sock_register]] și [https://​elixir.bootlin.com/​linux/​v4.15/​source/​net/​socket.c#​L2545|sock_unregister]] sunt folosite pentru completarea vectorului [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​net/​socket.c#​L158|net_families]].+Se va realiza astfel instanțierea pointerilor de funcții cu apeluri specifice tipului de protocol asociat socket-ului. Apelurile [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​net/​socket.c#​L2512|sock_register]] și [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​net/​socket.c#​L2545|sock_unregister]] sunt folosite pentru completarea vectorului [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​net/​socket.c#​L158|net_families]].
  
 Pentru restul operațiilor cu socketi (în afară de creare, închidere și transmitere/​recepție mesaj, prezentate mai sus, în secțiunea [[#​Operații asupra structurii socket|Operații asupra structurii socket]]), se vor apela funcțiile date de pointerii din această structură. Spre exemplu, pentru operația ''​bind'',​ care asociază unui socket un port pe mașina locală, vom avea următoarea secvență de cod: Pentru restul operațiilor cu socketi (în afară de creare, închidere și transmitere/​recepție mesaj, prezentate mai sus, în secțiunea [[#​Operații asupra structurii socket|Operații asupra structurii socket]]), se vor apela funcțiile date de pointerii din această structură. Spre exemplu, pentru operația ''​bind'',​ care asociază unui socket un port pe mașina locală, vom avea următoarea secvență de cod:
Line 364: Line 364:
 Structura [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​linux/​skbuff.h#​L585|struct sk_buff]] (//socket buffer//) descrie un pachet de rețea. Câmpurile structurii conțin informații atât despre antetele și conținutul pachetelor cât și protocoalele utilizate, dispozitivul de rețea utilizat, pointeri către celelalte structuri ''​struct sk_buff''​. O descriere sumară a conținutului structurii este prezentată mai jos: Structura [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​linux/​skbuff.h#​L585|struct sk_buff]] (//socket buffer//) descrie un pachet de rețea. Câmpurile structurii conțin informații atât despre antetele și conținutul pachetelor cât și protocoalele utilizate, dispozitivul de rețea utilizat, pointeri către celelalte structuri ''​struct sk_buff''​. O descriere sumară a conținutului structurii este prezentată mai jos:
 <code c> <code c>
-struct sk_buff { 
 struct sk_buff { struct sk_buff {
  union {  union {
so2/laboratoare/lab10.1525245676.txt.gz · Last modified: 2018/05/02 10:21 by silvia.pripoae
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0