Uživatelské nástroje

Nástroje pro tento web


c_network

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
c_network [2013/04/11 16:04] djbuldogc_network [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 42: Řádek 42:
 uint32_t ntohl(uint32_t netlong); uint32_t ntohl(uint32_t netlong);
 uint16_t ntohs(uint16_t netshort); uint16_t ntohs(uint16_t netshort);
 +</code>
 +
 +==== Prace s adresami ====
 +
 +  * struct sockaddr je nejvice obecna
 +  * jednotlive struktury jsou mezi sebou prevoditelne, ale nemusi mit vubec stejnou delku!! Je treba si uvedomit, kam mohu kdy sahnout ve strukture.
 +
 +<code>
 +include <netinet/in.h>
 +
 +// All pointers to socket address structures are often cast to pointers
 +// to this type before use in various functions and system calls:
 +
 +struct sockaddr {
 +    unsigned short    sa_family;    // address family, AF_xxx
 +    char              sa_data[14];  // 14 bytes of protocol address
 +};
 +
 +
 +// IPv4 AF_INET sockets:
 +
 +struct sockaddr_in {
 +    short            sin_family;   // e.g. AF_INET, AF_INET6
 +    unsigned short   sin_port;     // e.g. htons(3490)
 +    struct in_addr   sin_addr;     // see struct in_addr, below
 +    char             sin_zero[8];  // zero this if you want to
 +};
 +
 +struct in_addr {
 +    unsigned long s_addr;          // load with inet_pton()
 +};
 +
 +
 +// IPv6 AF_INET6 sockets:
 +
 +struct sockaddr_in6 {
 +    u_int16_t       sin6_family;   // address family, AF_INET6
 +    u_int16_t       sin6_port;     // port number, Network Byte Order
 +    u_int32_t       sin6_flowinfo; // IPv6 flow information
 +    struct in6_addr sin6_addr;     // IPv6 address
 +    u_int32_t       sin6_scope_id; // Scope ID
 +};
 +
 +struct in6_addr {
 +    unsigned char   s6_addr[16];   // load with inet_pton()
 +};
 +
 +
 +// General socket address holding structure, big enough to hold either
 +// struct sockaddr_in or struct sockaddr_in6 data:
 +
 +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> </code>
  
c_network.1365689098.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki