Programowanie sieciowe (studia niestacjonarne)
Zajęcia
- 09.X.2011 —
zajęcia organizacyjne i wprowadzające:
(wymagania, warunki zaliczenia, zakres materiału, harmonogram
semestru, ...)
Zapoznanie ze środowiskiem
programistycznym dostępnym w laboratorium (Visual Studio 2010),
w tym celu mają Państwo napisać kilka prostych
programów (zadanie 0).
Materiały dydaktyczne z zajęć:
Dokumentacja do
wybranych wykorzystywanych klas i funkcji języka C#:
- 23.X.2011 ??? klienty usług TCP
(przykładowy prosty klient i serwer usługi WWW), protokół TCP/IP,
nawiązywanie połączeń, obsługa błędów (wyłapywanie wyjątków)
- realizacja Zadania 1.: klient echo, nawiązywanie połączeń, nasłuch na porcie, transfer danych
Dokumentacja:
Wybrane materiały dydaktyczne z zajęć:
- 06.XI.2011 — klienty i serwery usług
UDP, serwery wielowątkowe, obsługa wątków, tekstowe i binarne protokoły komunikacji;
- Sprawdzenie Zadania 1
- Protokół UDP: wysyłanie i odbieranie pakietów UDP (klasy
UdpClient,
IPEndPoint),
funkcje pomocnicze: Encoding.ASCII.GetBytes(),
Encoding.ASCII.GetString()
- Serwery wielowątkowe: Tworzenie i zarządzanie wątkami (klasa Thread)
- Obsługa elementów GUI z poziomu innych wątków (delegaty,
metoda
Invoke())
- Ćwiczenie dydaktyczne: funkcjonalny mini-komunikator oparty
o UDP
- Szczegółowe omówienie propozycji tematów projektów:
Sieciowe szachy, warcaby, GO, kółko i krzyżyk, zdalne zarządzanie
plikami, trojan, serwer czasu,
serwer WWW, komunikator internetowy, klient FTP
- Obowiązkowy wybór tematów projektów
Wybrane materiały dydaktyczne z zajęć, prezentujące omówioną
tematykę:
- 20.XI.2011 — projektowanie protokołów komunikacji, implementacja protokołów warstwy aplikacji, mechanizmy zwielokrotniania wejścia/wyjścia, serwery wielowątkowe;
- Prezentacja postępów w realizacji projektów: propozycje interfejsów GUI;
mile widziane: wysyłanie pakietów w reakcji na zdarzenia zachodzące w GUI
- Sprawdzenie Zadania 1 c.d.
- Wybrane zagadnienia teoretyczne:
mechanizmy zwielokrotniania wejścia/wyjścia; interfejs
gniazd Berkeley Sockets
- Omówienie zakresu tematycznego, obowiązującego na
zaliczenie: tematy.pdf
- Realizacja projektów c.d.: implementacja protokołu komunikacji;
nasłuchiwanie i odbiór pakietów, aktualizacja stanu aplikacji w
reakcji na dane odczytywane z pakietów przychodzących z sieci
Dodatkowe materiały dydaktyczne do zajęć:
- 27.XI.2011:
- sprawdzian pisemny z części teoretycznej
- prezentacja i ocena projektów
- 14.I.2012, 18:00, sala 311 — POPRAWA i prezentacja zaległych projektów
- 21.I.2012, 18:00, sala 311 — POPRAWA 2 i prezentacja zaległych projektów
- 28.I.2012, 18:00, sala 311 —
OSTATECZNA POPRAWA i prezentacja zaległych
projektów
Galeria wybranych zrealizowanych projektów studenckich
 Serwer i klient czasu - A.Janiak |
 Gra karciana: Oczko - J.Antczak |

Gra planszowa "4 w rzędzie" - K.Grabowicz |
 Gra planszowa Chińczyk - M.Żebrowski |
 Gra sieciowa: Statki - M. Jakóbowski |
 Klient SMTP - J. Joachimiak |
 Komunikator - M. Kaczorowski |
 Gra logiczna GO - J. Tobera |
Oprogramowanie
Na komputerach w salach laboratoryjnych zainstalowane jest środowisko
programistyczne Microsoft Visual Studio 2010. Możliwe jest wykonywanie
zadań przy użyciu dowolnych innych języków i narzędzi, jeśli tylko będą
Państwo w stanie zaprezentować swoje programy w laboratorium i jeśli samodzielność
ich wykonania nie będzie budziła wątpliwości.
Treści zadań
Zadanie 0 (na rozgrzewkę)
Instrukcja do zadania
Zadanie 1 ??? klienty, serwery TCP/UDP
Instrukcja do zadania
Zadanie projektowe
Zadanie projektowe polega na stworzeniu programu, pracującego w architekturze klient-serwer
– aplikacja wielowątkowa lub wykorzystująca inne metody zwielokrotniania wejścia-wyjścia,
jeśli jest to konieczne.
Przykładowe tematy projektów do wyboru:
- Prosta gra logiczna: kółko i krzyżyk, statki etc., oferująca rozgrywkę przez sieć
- Serwer i/lub klient prostej usługi sieciowej: np. prosty
klient IRC lub prosty serwer WWW
- Program umożliwiający przesyłanie danych przez sieć (w rodzaju FTP)
- Klient+serwer umożliwiające zdalne zarządzanie komputerem (zarządzanie plikami, wyłączenie komputera etc.)
- Klient+serwer umożliwiające rozmowy Internetowe dla wielu użytkowników
- Sieciowa gra zręcznościowa w rodzaju
pong lub asteroids
- Serwer udostępniający muzykę
- Własna propozycja tematu
Uwaga: Biorąc pod uwagę, że przedmiot trwa tylko przez pół semestru,
założenia i funkcjonalność projektu powinny być możliwie proste.
Zadanie może być zrealizowane w dowolnej technologii i w dowolnym języku programowania,
jeśli tylko zostanie to uzgodnione z prowadzącym. Program powinien zapewniać obsługę
podstawowych błędów.
Podczas realizacji projektu mogą Państwo korzystać z fragmentów poprzednich zadań.
Istnieje ewentualna możliwość realizacji projektu w grupach dwuosobowych, w przypadku chęci
realizowania rozbudowanego, niestandardowego projektu.
Przed przystąpieniem do realizacji należy obowiązkowo zgłosić wybór projektu prowadzącemu
w celu omówienia szczegółów, zakresu projektu oraz planowanego sposobu realizacji zadania.
Przydzielone tematy projektów
student | temat projektu |
M.Kaczorowski | Komunikator dla wielu użytkowników |
M.Jakóbowski | Sieciowa gra logiczna: Statki |
J.Tobera | Sieciowa gra logiczna: GO |
R.Rosiak | Gra sieciowa: Patyczki |
K.Pawlak | Serwer FTP |
W.Kujawa | Komunikator z funkcją transferu zrzutów ekranu |
G.Kosiacki | Klient FTP |
A.Janiak | Klient / serwer czasu (usługa daytime) |
J.Joachimiak | Program pocztowy (klient SMTP) |
M.Żebrowski | Sieciowa gra losowa: Chińczyk |
J.Antczak | Sieciowa gra karciana: Oczko |
K.Grabowicz | Sieciowa gra logiczna: "4 w rzędzie" |
Ł.Batarowicz | Serwer WWW |
S.Krawiec | |
K.Drzanikowski | Sieciowa gra logiczna: Warcaby |
K.Stępniak | Sieciowa gra logiczna: Kółko i krzyżyk |
... |
... |
Polecana literatura
W trakcie semestru pojawią się tutaj odnośniki do innych wartościowych materiałów.
Zasady uzyskania zaliczenia
- Wykład: sprawdzian pisemny. Laboratorium: oceny z programów cząstkowych oraz ocena projektu końcowego. Ocena końcowa składa się w 75% z oceny laboratoryjnej oraz w 25% wykładowej.
- Aby zaliczyć laboratorium, należy mieć zaliczone wszystkie zadania.
- Zadania powinny być oddawane systematycznie.
- Oddawanie zadania z opóźnieniem (w stosunku do
harmonogramu powyżej) wyklucza możliwość uzyskania maksymalnej oceny za to zadanie.
Każdy kolejny termin (zjazd) oddania zadania obniża maksymalną ocenę o 0.5.
- Zadania muszą być wykonywane w sposób indywidualny oraz samodzielny.
Lepiej napisać słabszy program samemu niż próbować uzyskać zaliczenie poprzez niesamodzielną pracę.
- Zaliczenie zadania polega na napisaniu programu oraz na odpowiedzi ustnej.
- Oceną z laboratorium jest zaokrąglona średnia ważona ze wszystkich zadań (projekt ma wagę 75%).
- Zadania mogą być zaliczane w trakcie laboratoriów oraz podczas konsultacji.
Programy można również przysyłać mi za pomocą poczty elektronicznej.
- Uwaga: Zgodnie z
regulaminem
studiów w Politechnice Łódzkiej (§15 pkt 2):
„Obecność studenta jest obowiązkowa pod rygorem niezaliczenia przedmiotu po trzykrotnej nieusprawiedliwionej nieobecności na: ćwiczeniach audytoryjnych, laboratoryjnych, zajęciach projektowych, seminariach, lektoratach oraz na zajęciach praktycznych i terenowych.”
- Zadania muszą zostać zaliczone w trakcie semestru.
Nie ma możliwości zaliczania laboratorium w czasie sesji.
Wyniki
...