VEndymionV

SO2 - wejściówka z gniazd

May 9th, 2018
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. // Notatki - gniazda \\
  2.  
  3. 1. socket
  4. int socket(int domain, int type, int protocol);
  5. Działanie - zwraca deskryptor gniazda.
  6. Argumenty - domena, typ gniazda SOCK_STREAM lub SOCK_DGRAM, protokół gdy 0 to funkcja socket() sama wybierze właściwy protokół bazując na parametrze typ.
  7. Zwraca - deskryptor gniazda, lub -1 w przypadku błędu + ustawia errno.
  8.  
  9. 2. connect
  10. int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
  11. Działanie - nawiązuje połączenie ze zdalnym hostem.
  12. Argumenty - sockfd to deskryptor gniazda zwrócony przez funkcję socket(), addr to wskaźnik na strukturę sockaddr która zawiera m.in. docelowy port i adres IP z którym chcemy nawiązać połączenie, addrlen to rozmiar tej struktury więc może być ustawiony na sizeof(struct sockaddr).
  13. Zwraca - 0 w przypadku sukcesu, -1 w przypadku błędu + ustawia errno.
  14.  
  15. 3. bind
  16. int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
  17. Działanie - przypisuję gniazdo do konkretnego portu.
  18. Argumenty - sockfd to deskryptor gniazda zwrócony przez funkcję socket(), addr to wskaźnik na strukturę sockaddr która zawiera m.in. port, addrlen to rozmiar tej struktury więc może być ustawiony na sizeof(struct sockaddr).
  19. Zwraca - 0 w przypadku sukcesu, -1 w przypadku błędu + ustawia errno.
  20.  
  21. 4. listen
  22. int listen(int sockfd, int backlog);
  23. Działanie - nasłuchuje na połączenia przychodzące.
  24. Argumenty - sockfd to deskryptor gniazda zwrócony przez funkcję socket(), backlog to ilość dozwolonych połączeń w kolejce połączeń przychodzących.
  25. Zwraca - 0 w przypadku sukcesu, -1 w przypadku błędu + ustawia errno.
  26.  
  27. 5. accept
  28. int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
  29. Działanie - akceptuje połączenie na które czekamy korzystając z listen(). Zwraca nam deskryptor gniazda dzięki któremu mamy dostęp do tego połączenia oraz ustawia odpowiednio strukturę która zawiera informację o tym połączeniu i hoście z którym się łączymy.
  30. Argumenty - sockfd to deskryptor gniazda zwrócony przez funkcję socket(), addr to wskaźnik na strukturę sockaddr w której znajdą się informację o oczekującym połączeniu, addrlen to rozmiar tej struktury więc może być ustawiony na sizeof(struct sockaddr) - funkcja nie umieści więcej bajtów danych niż tutaj ustalimy, jeżeli umieści mniej to zmienna zostanie zmieniona.
  31. Zwraca - deskryptor gniazda dla połączenia które zaakcpetowaliśmy, -1 w przypadku błędu + ustawia errno.
  32.  
  33. 6. read
  34.  
  35. 7. recv
  36.  
  37. 8. write
  38.  
  39. 9. gethostbyname
  40.  
  41. 10. getaddrinfo
  42.  
  43. 11. htons
Advertisement
Add Comment
Please, Sign In to add comment