Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
sk2:sockets_intro [2022/10/03 20:20] jkonczak [Adresacja połączeń na warstwie transportu] |
sk2:sockets_intro [2023/10/10 16:54] (aktualna) jkonczak [Hello world] |
||
---|---|---|---|
Linia 84: | Linia 84: | ||
Przykład wysłania liczby 0x010F, czyli 271, czyli 0b0000000100001111 | Przykład wysłania liczby 0x010F, czyli 271, czyli 0b0000000100001111 | ||
|byte order\bit order|MSB first|LSB first| | | | |byte order\bit order|MSB first|LSB first| | | | ||
- | |little endian|0000111100000001|1111000010000000| x86 |<html><div style="margin-top:1em">ARM, IA-64 (Itanium), SPARC≥v9</div></html>| | + | |little endian|0000111100000001|1111000010000000| x86/x86_64 |<html><div style="margin-top:1em">ARM, IA-64 (Itanium), SPARC≥v9, RISC-V</div></html>| |
|big endian|0000000100001111|1000000011110000|Motorola 68k, SPARC<v9, z/Arch| :::| | |big endian|0000000100001111|1000000011110000|Motorola 68k, SPARC<v9, z/Arch| :::| | ||
| | I²C, SDH | Ethernet, RS232, USB | | | | | I²C, SDH | Ethernet, RS232, USB | | | ||
Linia 128: | Linia 128: | ||
* rodzina adresów IPv4 – stała ''AF_INET'' | * rodzina adresów IPv4 – stała ''AF_INET'' | ||
* port – 13 (port usługi daytime; pamiętaj o porządku bajtów - ''htons'') | * port – 13 (port usługi daytime; pamiętaj o porządku bajtów - ''htons'') | ||
- | * adres IP – 127.0.0.1 (localhost, do konwersji użyj ''inet_addr'' lub ''inet_aton''); \\ można też ustawić adres na stałą ''htonl(INADDR_LOOPBACK)''. \\ <html><small></html> Uwaga: ''.sin_addr'' to struktura typu ''in_addr'' z jedną składową ''.s_addr'' typu ''uint32_t'' \\ ''inet_addr'' przyjmuje wskaźnik na strukturę, natomiast ''inet_aton'' zwraca liczbę którą trzeba przypisać składowej ''.s_addr'': \\ <code cpp>sockaddr_in nazwa_zmiennej; | + | * adres IP – 127.0.0.1 (localhost, do konwersji użyj ''inet_addr'' lub ''inet_aton''); \\ można też ustawić adres na stałą ''htonl(INADDR_LOOPBACK)''. \\ <html><small></html> Uwaga: ''.sin_addr'' to struktura typu ''in_addr'' z jedną składową ''.s_addr'' typu ''uint32_t'' \\ ''inet_aton'' przyjmuje wskaźnik na strukturę, natomiast ''inet_addr'' zwraca liczbę którą trzeba przypisać składowej ''.s_addr'': \\ <code cpp>sockaddr_in nazwa_zmiennej; |
wersja 1: nazwa_zmiennej.sin_addr.s_addr = inet_addr("8.8.8.8"); | wersja 1: nazwa_zmiennej.sin_addr.s_addr = inet_addr("8.8.8.8"); | ||
wersja 2: inet_aton("8.8.8.8", &nazwa_zmiennej.sin_addr); | wersja 2: inet_aton("8.8.8.8", &nazwa_zmiennej.sin_addr); |