Powrót do katalogu

Podaj maila aby obejrzeć webinar z Node.js

Wyrażam zgodę na otrzymywanie informacji o promocjach i produktach oferowanych Czytaj więcej przez Vavatech Sp z o.o. Zgodę możesz cofnąć w każdym czasie.
Termin sugerowany
2019-11-18
Warszawa

Zapisz się jako pierwszy!

1 400 / 2 dni
Zgłoś chęć udziału
Termin sugerowany
2019-12-12
Warszawa

Zapisz się jako pierwszy!

1 400 / 2 dni
Zgłoś chęć udziału
Zaproponuj własny termin
Postaramy się uruchomić nowy termin dla Ciebie
Zgłoś chęć udziału

Inżynieria oprogramowania > Języki programowania > C

Szkolenie: Programowanie sieciowe TCP/IP w języku C

Kod: [C-TCP]
Pobierz program

Wprowadzenie

Mimo rozwoju wysokopoziomowych technologii komunikacji między aplikacjami takich jak usługi sieciowe (SOAP, REST) oraz dostępności bibliotek do obsługi konkretnych protokołów komunikacyjnych (HTTP, SMTP itd.), wciąż można spotkać się z potrzebą obsługi komunikacji sieciowej na poziomie TCP/IP. Jest to konieczne choćby dla aplikacji integrujących się z istniejącymi już systemami używającymi własnych niestandardowych protokołów komunikacyjnych. Z kolei nowe rozwiązania projektowane w ten sposób mogą uzyskać większą efektywność niż gdyby korzystały z technologii wysokopoziomowych.

Cel szkolenia

Głównym tematem szkolenia są interfejsy programistyczne pozwalające w języku C bezpośrednio korzystać z połączeń sieciowych UDP i TCP. Szkolenie obejmuje także podstawowe informacje o adresacji sieci IP oraz prezentuje różne strategie tworzenia serwerów sieciowych.

Szkolenie prowadzone jest na platformie Linux, a prezentowane mechanizmy powinny być przenośne między różnymi wersjami systemów opartych o UNIX. Ogólne informacje oraz strategie korzystania z sieci znajdują swoje odzwierciedlenie także w innych językach programowania i na innych platformach (np. Java lub Windows), ale różnią się tam w szczegółach API.

Prezentowane jest podstawowe API mechanizmów, dostępne z języka C i korzystające bezpośrednio z odpowiednich zasobów i funkcji systemowych. Używanie ich w ten sposób daje największą przenośność rozwiązań i największą kontrolę nad szczegółami.

Po zakończeniu szkolenia aktywny uczestnik potrafi:

  • tworzyć klienckie gniazda sieciowe,
  • tworzyć gniazda nasłuchujące (strony serwera) i reagować na przychodzące połączenia,
  • wykorzystywać adresy IP wersji 4 i 6 oraz nazwy domen,
  • wysyłać i odbierać komunikaty UDP,
  • komunikować się przez strumienie TCP,
  • implementować proste jednowątkowe i wielowątkowe serwery sieciowe.

Szkolenie nie obejmuje m.in. następujących tematów:

  • komunikacja międzyprocesowa za pomocą mechanizmów innych niż sieć (patrz szkolenie C-IPC).
  • szczegóły biblioteki pthreads oraz synchronizacja wątków (patrz szkolenie C-IPC),
  • opakowanie poznawanych tu podstawowych mechanizmów w nakładki języka C++.

Adresaci szkolenia

Adresatami szkolenia są programiści pragnący nauczyć się bezpośredniej obsługi komunikacji sieciowej TCP/IP w języku C, szczególnie w systemie UNIX lub pochodnym (np. Linux).

Szkolenie polecamy przede wszystkim programistom przygotowującym się do pracy w projektach wymagających bezpośredniego skorzystania z komunikacji sieciowej. Może ono być także kolejnym krokiem w naturalnym rozwoju programisty języka C platformy UNIX (polecamyw tym miejscu cykl szkoleń C-PDC-IPCC-TCP).

Wymagania wstępne:

  • programowanie w języku C (np. dzięki szkoleniu C-PD) lub ewentualnie w C++.

Zalecane:

  • podstawowa wiedza z zakresu sieci komputerowych,
  • podstawy programowania współbieżnego i znajomość mechanizmów IPC systemu UNIX oraz biblioteki pthreads (np. dzięki szkoleniu C-IPC).

Czas i forma szkolenia

14 godzin (2 dni x 7 godzin), w tym wykłady i warsztaty praktyczne.

Plan szkolenia

  1. Sieć IP – wprowadzenie.
    1. Warstwy protokołów sieciowych.
    2. Wersje protokołu IP.
    3. Klasy adresów IP.
    4. Protokoły UDP i TCP, porty, gniazda.
  2. Gniazda sieciowe.
    1. Tworzenie gniazd sieciowych.
    2. Wiązanie gniazd z adresami.
    3. Wykorzystanie nazw domen.
    4. Używanie adresów IPv6.
  3. Komunikacja za pomocą pojedynczych wiadomości – protokół UDP.
  4. Komunikacja strumieniowa – protokół TCP.
  5. Serwer jednowątkowy.
    1. Obsługiwanie klientów po kolei.
    2. Oczekiwanie na zdarzenia wejścia/wyjścia – funkcje select i poll – i implementacja serwera na bieżąco reagującego na komunikaty.
  6. Serwer wielowątkowy.
    1. Podstawy biblioteki pthreads.
    2. Implementacja serwera wielowątkowego.

Opinie uczestników