Różnice między wybraną wersją a wersją aktualną.
| Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
|
sk2:sockets_full [2025/10/09 23:46] jkonczak |
sk2:sockets_full [2025/10/16 22:26] (aktualna) jkonczak |
||
|---|---|---|---|
| Linia 48: | Linia 48: | ||
| Funkcja ''accept'' (podobnie jak wprowadzana za chwilę ''recvfrom'') może przekazać informację o adresie z którego nawiązano połączenie. W tym celu należy jej podać: | Funkcja ''accept'' (podobnie jak wprowadzana za chwilę ''recvfrom'') może przekazać informację o adresie z którego nawiązano połączenie. W tym celu należy jej podać: | ||
| * gdzie ma zapisać ten adres – tj. podać adres struktury sockaddr (drugi argument) | * gdzie ma zapisać ten adres – tj. podać adres struktury sockaddr (drugi argument) | ||
| - | * adres zmiennej, która w momencie wywołania ''accept'' ma wpisany rozmiar przekazanej struktury (trzeci argument)<html><small></html><code cpp> | + | * adres zmiennej, która w momencie wywołania ''accept'' ma wpisany rozmiar przekazanej struktury (trzeci argument)<html><small style="user-select: none;"></html><code cpp> |
| sockaddr_in nazwa_zmiennej; | sockaddr_in nazwa_zmiennej; | ||
| socklen_t inna_zmienna = sizeof(nazwa_zmiennej); | socklen_t inna_zmienna = sizeof(nazwa_zmiennej); | ||
| Linia 104: | Linia 104: | ||
| Tworząc gniazdo UDP należy użyć następujących argumentów: | Tworząc gniazdo UDP należy użyć następujących argumentów: | ||
| + | <html><div style=margin-top:-1.2em></div></html> | ||
| <code cpp> | <code cpp> | ||
| socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) | socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) | ||
| Linia 111: | Linia 112: | ||
| UDP nie nawiązuje połączenia – do odbioru i wysyłania wiadomości należy używać funkcji ''sendto'' i ''recvfrom'' (lub ''recv''/''read'', jeśli nie obchodzi nas nadawca). \\ W formie ułatwienia BSD socket API pozwala działać gniazdom UDP w trybie pseudo-połączeniowym - tzn. można wywołać funkcję ''connect'' (która ustali adres odbiorcy) i dalej korzystać z ''send'' / ''write''. | UDP nie nawiązuje połączenia – do odbioru i wysyłania wiadomości należy używać funkcji ''sendto'' i ''recvfrom'' (lub ''recv''/''read'', jeśli nie obchodzi nas nadawca). \\ W formie ułatwienia BSD socket API pozwala działać gniazdom UDP w trybie pseudo-połączeniowym - tzn. można wywołać funkcję ''connect'' (która ustali adres odbiorcy) i dalej korzystać z ''send'' / ''write''. | ||
| - | Przykład użycia funkcji ''sendto'' i ''recvfrom'': <html><small></html><code cpp> | + | Przykład użycia funkcji ''sendto'' i ''recvfrom'': |
| + | <html><div style=margin-top:-1.2em></div></html> | ||
| + | <html><small style="user-select: none;"></html><code cpp> | ||
| sockaddr_in nazwa_zmiennej {...}; | sockaddr_in nazwa_zmiennej {...}; | ||
| socklen_t inna_zmienna = sizeof(nazwa_zmiennej); | socklen_t inna_zmienna = sizeof(nazwa_zmiennej); | ||