ابزار کاربر

ابزار سایت


socket-programming:structs

تفاوت‌ها

تفاوت دو نسخهٔ متفاوت از صفحه را مشاهده می‌کنید.

پیوند به صفحه‌ی تفاوت‌ها

نگارش بعد
نگارش قبل
socket-programming:structs [2024/06/18 00:21] – ایجاد شد pejmansocket-programming:structs [2024/06/18 00:55] (فعلی) – حذف شد pejman
خط 1: خط 1:
-====== لیست structهای مورد نیاز ====== 
- 
-در لیست زیر structها و manual هایی که در باره آنها توضیح داده اند مشخص شده اند: 
- 
-<code C> 
-// man 3 getaddrinfo 
-struct addrinfo { 
-    int              ai_flags;     // AI_PASSIVE, AI_CANONNAME, etc. 
-    int              ai_family;    // AF_INET, AF_INET6, AF_UNSPEC 
-    int              ai_socktype;  // SOCK_STREAM, SOCK_DGRAM, 0 
-    int              ai_protocol;  // use 0 for "any" 
-    socklen_t        ai_addrlen;   // size of ai_addr in bytes 
-    struct sockaddr *ai_addr;      // struct sockaddr_in or sockaddr_in6 
-    char            *ai_canonname; // full canonical hostname 
-    struct addrinfo *ai_next;      // linked list, next node 
-}; 
-</code> 
- 
-<code C> 
-// man 2 bind 
-// man 3 sockaddr 
-struct sockaddr { 
-    sa_family_t    sa_family;    // address family, AF_xxx 
-    char           sa_data[14];  // 14 bytes of protocol address 
-}; 
-</code> 
- 
-<code C> 
-// man 7 ip 
-// man 3 sockaddr 
-typedef uint16_t in_port_t; 
-struct sockaddr_in { 
-    sa_family_t     sin_family;  // Address family, AF_INET 
-    in_port_t       sin_port;    // Port number, Network Byte Order with htons() 
-    struct in_addr  sin_addr;    // Internet address 
-    unsigned char   sin_zero[8]; // Same size as struct sockaddr, set to zero with memset() 
-}; 
-</code> 
- 
-<code C> 
-// man 7 ip 
-// man 3 inet 
-// man 3 sockaddr 
-// Internet address (a structure for historical reasons) 
-typedef uint32_t in_addr_t; 
-struct in_addr { 
-    in_addr_t s_addr; // that's a 32-bit int (4 bytes) 
-}; 
-</code> 
- 
-<code C> 
-// man 7 ipv6 
-// man 3 sockaddr 
-typedef uint16_t in_port_t; 
-struct sockaddr_in6 { 
-    sa_family_t     sin6_family;    // Address family, AF_INET6 
-    in_port_t       sin6_port;      // Port number, Network Byte Order 
-    u_int32_t       sin6_flowinfo;  // IPv6 flow info 
-    struct in6_addr sin6_addr;      // IPv6 address 
-    u_int32_t       sin6_scope_id;  // Set of interfaces for a scope (Scope ID) 
-}; 
-</code> 
- 
-<code C> 
-// man 7 ipv6 
-// man 3 sockaddr 
-struct in6_addr { 
-    uint8_t   s6_addr[16];   // IPv6 address 
-}; 
-</code> 
- 
-<code C> 
-// man 7 socket 
-// man 3 sockaddr 
-// both IPv4 and IPv6 
-struct sockaddr_storage { 
-    sa_family_t  ss_family;     // address family 
-    // all this is padding, implementation specific, ignore it: 
-    char      __ss_pad1[_SS_PAD1SIZE]; 
-    int64_t   __ss_align; 
-    char      __ss_pad2[_SS_PAD2SIZE]; 
-}; 
-</code> 
  
socket-programming/structs.1718657496.txt.gz · آخرین ویرایش: 2024/06/18 00:21 توسط pejman

به جز مواردی که ذکر می‌شود، مابقی محتویات ویکی تحت مجوز زیر می‌باشند: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki