Na wejściówki należy…
===== Laboratoria 3 (16.10) =====
* wiedzieć jak zapisuje się adresy IP i adresy IP z długością maski/prefiksu
* na podstawie adresu IP i długości maski/prefiksu wskazać:
* do jakiej sieci należy adres
* czy i jaki w niej jest adres rozgłoszeniowy
* jakie adresy mogą mieć urządzenia w tej sieci
* znać adresy bloków prywatnych w IPv4 oraz adres localhosta
* znać polecenie wyświetlające:
* dostępne interfejsy sieciowe
* ustawione adresy IP
* z wyników w/w poleceń należy umieć określić:
* czy interfejs jest włączony
* czy nawiązał połączenie
* jakie ma adresy IP
* znać polecenie włączające / wyłączające interfejs
* znać polecenie do dodania / zmiany / usunięcia adresu IP
* znać polecenie do sprawdzenia czy jest łączność do podanego adresu IP / nazwy domenowej
===== Laboratoria 6 (6.11) =====
* umieć napisać komendę shellową która uruchomi prosty/prostego:
* serwer TCP
* klienta TCP
* serwer UDP
* klienta UDP
* umieć napisać komendę shellową która wyświetli:
* tylko nawiązane połączenia TCP
* tylko serwery TCP
* tylko wszystkie TCP
* tylko wszystkie UDP
* umieć odczytać z wyników komendy ss / netstat jakie porty są w użyciu, czy są użyte przez serwer czy istniejące połaczenie i które programy z nich korzystają
poniższe wiadomości są efektem kształcenia z przedmiotu //podstawy programowania// (i powinny być utrwalane na wielu innych, w tym zapewne na //programowaniu obiektowym// i //algorytmach i strukturach danych//)
* wiedzieć jak w językach C/C++ programista może dostać się do argumentów programu
* wiedzieć jak stworzyć określonego rozmiaru tablicę elementów wybranego typu na stosie (zmienna automatyczna)
* wiedzieć jak można dynamicznie alokować pamięć i jak należy ją zwalniać pamięć
* wiedzieć czym są struktury, w tym:
* jak się deklaruje nową strukturę (nowy typ danych)
* jak tworzy się nową zmienną będącą instancją wcześniej zadeklarowanej struktury
* jak dostaje się do pól struktury
* jak dostaje się do pól struktury dysponując wskaźnikiem do struktury
* wiedzieć jak pobiera się adres konkretnej zmiennej, tzn. jak tworzy się wskaźnik do zmiennej
* wiedzieć do czego służy funkcja strlen() i operator sizeof(), w szczególności:
* jak strlen() i sizeof() działa dla tablicy znaków o stałym rozmiarze
* jak strlen() i sizeof() działa dla tablicy znaków o zmiennym rozmiarze
* jak strlen() i sizeof() działa dla wskaźnika na znak (lokalizacji tablicy)
* wiedzieć czym jest rzutowanie (w stylu C lub, dla C++, statyczne)
* wiedzieć jak działa deklaracja aliasu typu używając słowa kluczowego typedef
* znać przynajmniej jedną funkcję do zmiany tekstu na liczbę
===== Laboratoria 7 (13.11) =====
* wiedzieć jakie funkcje służą do:
* tworzenia gniazda
* łączenia gniazda pod wskazany adres
* odbierania danych
* wysyłania danych
* zamykania połączenia
* zamykania deskryptora pliku
* zamiany kolejności bajtów między porządkiem hosta i sieciowym
* wyświetlania komunikatu poprzednim błędzie z funkcji systemowych
* wiedzieć gdzie używany jest (wskaźnik na) typ ''sockaddr'', a gdzie ''sockaddr_in''
* wiedzieć jakie informacje trzeba:
* wpisać do struktury ''sockaddr_in'' w pola ''sin_family'', ''sin_port'' i ''sin_addr'' przed podaniem jej do funkcji ''connect''
* podać w argumentach funkcji ''connect'' przy tworzeniu gniazda TCP (nie chodzi o nazwy stałych, tylko o to co one oznaczają)
* wiedzieć jakie wartości (i w jakich sytuacjach) zwracają funkcje: ''socket'', ''connect'', ''read'', ''write''
===== Laboratoria 9 (27.11) =====
* znać wymienione niżej funkcje API gniazd, to znaczy wiedzieć:
* jak nazywa się funkcja która wykonuje konkretne działanie
* jakich informacji potrzebuje (nie trzeba znać kolejności, nazw, ani dokładnych typów argumentów)
* co każda z tych funkcji zwraca (nie chodzi o typ, bo wszystkie zwracają typ ''int'' – trzeba wiedzieć co oznacza jego wartość)
* lista funkcji
* ogólne:
* tworzenie gniazda
* ustalanie lokalnego adresu
* zamykanie gniazda
* połączeniowe:
* łączenie do wybranego adresu
* oczekiwanie na nowe połączenia
* przyjęcie nowego połączenia
* wysyłanie danych
* odbiór danych
* zakończenie połączenia
* bezpołączeniowe:
* wysłanie danych
* odbiór danych
* odpytywanie o nazwy domenowe:
* do odwzorowywania nazw domenowych na adresy IP
* do odwzorowywania adresów IP na nazwy domenowe
* wiedzieć co oznaczają stałe które występują w tych funkcjach: \\ AF_INET, AF_INET6, SOCK_STREAM, SOCK_DGRAM, IPPROTO_TCP, IPPROTO_UDP, INADDR_ANY, INADDR_LOOPBACK, SOMAXCONN, SHUT_RDWR, SO_REUSEADDR
* wiedzieć w jakiej kolejności można wywoływać w/w funkcje
* wiedzieć jakie funkcje i w jakiej kolejności należy użyć, aby stworzyć:
* klienta TCP
* serwer TCP
* klienta UDP
* serwer UDP