• Nie Znaleziono Wyników

Laboratorium 1

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorium 1"

Copied!
12
0
0

Pełen tekst

(1)

Programowanie Systemów Rozproszonych

Laboratorium 1

Wprowadzenie do Visual Studio i C#

Paweł Paduch

paduch@tu.kielce.pl

11-03-2019

(2)

Rozdział 1

Wstęp

1.1

Na początek

Pierwsze zajęcia laboratoryjne z Programowania Systemów Rozproszonych mają charakter wprowadzający. Na początku studenci po otrzymaniu od prowa-dzącego loginów i haseł zostaną poproszeni o zalogowanie się. Pierwsze logowanie powinno odbywać się pod systemem Windows. W okienku logowania należy za-znaczyć „Zaloguj do: KIN”. Lub użyć przedrostka w nazwie użytkownika np. KIN\12345

Po wprowadzeniu pierwszy raz hasła należy hasło zmienić na swoje indywidual-ne. Hasło należy zapamiętać (lub nawet zapisać) gdyż indywidualny login i hasło będą używane przez cały semestr. Zalogowani studenci mają swoją przestrzeń na dysku sieciowym Z: tam też proszę zamieszczać swoje prace.

1.2

Uczestnictwo

• Zajęcia laboratoryjne są obowiązkowe.

• Każdy student ma obowiązek wpisać się na listę obecności, co będzie po-twierdzeniem jego uczestnictwa na zajęciach.

• Spóźnienie powyżej 15 min. traktowane jest jako nieobecność.

• Odrabiać można jedynie nieobecności pisemnie usprawiedliwione (np. zwol-nienie lekarskie, pismo urzędowe).

• Usprawiedliwienie należy okazać niezwłocznie (pierwsze laboratoria po okresie nieobecności) i umówić się na termin odróbczy. Usprawiedliwienia typu: „musiałem być w pracy”, „uciekł mi autobus/pociąg/taksówka”, „źle się czułem”, „nie miałem z kim dziecka zostawić” nie będą honorowane. • Zgodnie z regulaminem studiów „Nieobecność studenta nawet

usprawie-dliwiona, na więcej niż 1/3 zajęć, może być podstawą do niezaliczenia tych zajęć.” Kolejne 3 nieobecności będą zgłaszane do dziekana w celu weryfi-kacji listy studentów.

(3)

1.3

Zasady zaliczenia

Zaliczenie uzyska student, który w ciągu całego semestru uzyskał sumarycz-nie przynajmsumarycz-niej połowę punktów przewidzianych do zdobycia. W przypadku kilku prowadzących punkty te będą przeliczane wagowo w zależności jaką część zajęć dany prowadzący wykonał w ciągu semestru. Na zaliczenie laboratorium składać się będą 3 elementy:

• Na każdych zajęciach laboratoryjnych studenci wykonują zadania przed-stawione przez prowadzącego. Zadania te są oceniane w skali od 0 do 5 punktów.

• Po każdych laboratoriach student powinien przesłać sprawozdanie z zajęć. Sposób przekazania i termin ustala prowadzący. Za prawidłowe sprawoz-danie student może otrzymać maksymalnie 1 punkt.

• Podczas zajęć mogą odbywać się sprawdziany weryfikujące nabytą wiedzę. Ocena ze sprawdzianów to około 50% całkowitej oceny.

1.4

Poprawy

Student, który nie uzyskał zaliczenia w trakcie trwania semestru może się o nie ubiegać dwukrotnie w trakcie trwania sesji egzaminacyjnej, w tym raz podczas sesji poprawkowej. Poprawa będzie polegała na napisaniu sprawdzianu (przynajmniej na połowę punktów) oraz wykonaniu części praktycznej.

1.5

Moodle

Każdy student powinien mieć założone konto na wydziałowej platformie edu-kacyjnejhttp://www.weaii-moodle.tu.kielce.pl/Hasła do kursu poda prowadzą-cy.

1.6

zasady korespondencji

Zasady korespondencji opisałem pod adresem

https://achilles.tu.kielce.pl/portal/Members/332bd2d158a24964b2b98a7fc2879842/ogolne-zasady-korespondencji-mailowejNależy przede wszystkim pamiętać o:

• prawidłowej konfiguracji programu pocztowego tak aby w polu nadawca widniało imię i nazwisko

• zamieszczeniu tematu maila łącznie z podaniem nazwy grupy np. 1ID21A • podaniu treści maila wraz z podpisem

1.7

Sprawozdania

• Po każdych zajęciach laboratoryjnych należy przesłać sprawozdanie (chy-ba, że prowadzący ustali inaczej).

(4)

• Czas na oddanie sprawozdania jest do końca (czyli do godziny 23:59:59,99) następnego dnia roboczego.

• Sprawozdanie powinno być w formie .odt (plik Open/Libre Office). • W sprawozdaniu umieszczamy jedynie fragmenty kodu (nie przekraczające

strony). Kod o większej objętości należy wysłać jako osobne załączniki. W szczególności można wysłać cały projekt wcześniej skompresowany ZIPem. • Sprawozdanie ma być formą dokumentu co zrobione zostało na zajęciach, nie pracą domową. Punkty, które nie zostały wykonane na zajęciach takie też pozostają w sprawozdaniu.

1.8

Prace domowe

Jeżeli na kolejne zajęcia jest zadana praca domowa (np. przemyśleć komuni-kację, zaprojektować klasę transportową itp.), należy ją także przesłać na maila zgodnie z zasadami korespondencji najpóźniej na 2 dni przed planowanymi za-jęciami.

1.9

Zasady podczas pisania sprawdzianów

Sprawdziany będą przeprowadzane na platformie moodle. Maksymalny czas przeznaczony na sprawdzian zależny będzie od jego zawartości, zwykle kilka minut. Na pytania opisowe należy udzielać odpowiedzi precyzyjnie (sprawdzane są z automatu). Pytania testowe są wielokrotnego wyboru. Nie ma punktów ujemnych.

Przed rozpoczęciem testu należy:

• wyłączyć i schować telefony komórkowe

• usunąć z uszu, szyi czy głowy i schować wszelkiego rodzaju słuchawki (osoby niedosłyszące proszę zgłosić fakt posiadania aparatu słuchowego, na czas testu aparat ten nie będzie potrzebny)

• usunąć wszystkie zbędne rzeczy z biurka (portfele, długopisy, kartki, ze-szyty, torebki, kalkulatory, napoje, jedzenie, maskotki itp.).

• zamknąć lub odłożyć w miejsce niedostępne wszelkie torby i plecaki. Podczas testu nie jest dozwolone:

• korzystanie z Internetu (za wyjątkiem strony moodle)

• korzystanie z innych aplikacji niż przeglądarka internetowa (np. komuni-katory, terminale, programy LibreOffice, kalkulatory itp.)

• korzystanie z telefonów komórkowych • korzystanie z kalkulatorów

• używanie pamięci przenośnych

(5)

• udostępnianie zasobów komputera swojego lub korzystanie z zasobów in-nych komputerów

• odwracanie się, zerkanie na sąsiedni monitor, rozglądanie lub rozmawianie • używanie ściąg

W przypadku naruszenia powyższych zasad lub przejawu innego nieuczciwego zachowania w trakcie sprawdzianu, student może otrzymać ocenę 0 w trybie natychmiastowym bez możliwości poprawy w późniejszym terminie!

1.10

Materiały pomocniczne

Do zajęć przydatne mogą być:

• materiały udostępniane przez prowadzących wykłady

• książki związane z tematyką programowania np. „Język C# 2010 i

plat-forma .NET“Andrew Troelsena

• książki związane z tematyką programowania współbieżnego np.

„Progra-mowanie równoległe i asynchroniczne w C# 5.0”

(6)

Rozdział 2

Pierwsze kroki z VS

Po zalogowaniu się z menu start odnajdujemy program Microsoft Visual

Studio 2010, lub nowszy. Przy pierwszym uruchomieniu poproszeni zostaniemy

o wybór preferowanego języka, będzie nim C#.

Z górnego menu wybieramy: File->New Project. W okienku jak na rysunku

Rysunek 2.1: Okienko wybierania nowego projektu

2.1zaznaczamy Visual C#->Windows Console Application. Na dole wpisujemy nazwę projektu Hello i nazwę solucji Lab1, potwierdzamy OK.

Utworzony zostanie prosty projekt konsolowy z przygotowanym kodem. Moż-na wypełnić kod metody Main prostą linijką.

Listing 2.1: Program.cs 1 usingSystem; 2 usingSystem.Collections.Generic; 3 usingSystem.Linq; 4 usingSystem.Text; 5 6 namespaceHello

(7)

7 {

8 classProgram

9 {

10 static void Main(string[] args)

11 {

12 Console.WriteLine("Hello");

13 }

14 }

15 }

Już teraz program można skompilować i zobaczyć jak działa

(8)

Rozdział 3

Pierwszy komunikat

Dodajemy nowy projekt do solucji Lab1

Rysunek 3.1: Okienko wybierania nowego projektu

We właściwościach solucji zmienić Startup Project na Multiple startup

pro-jectsjak na rys. 3.2

Dzięki temu oba projekty będą startowały jednocześnie przy uruchamianiu. W obu projektach Serwer w plikach Program.cs dodajemy dwie nowe prze-strzenie nazw:

Listing 3.1: Nowe przestrzenie nazw

1 usingSystem.Net.Sockets;

2 usingSystem.Net;

W obu plikach dodajemy też obiekty klasy TcpListener oraz Socket. Listing 3.2: Nowe obiekty

(9)

Rysunek 3.2: Start obu projektów

1 private staticTcpListener tcpLsn;

2 private staticSocket s;

W programie serwera dodajemy metodę serwuj() Listing 3.3: Metoda serwuj

1 static voidserwuj()

2 {

3 tcpLsn = newTcpListener(IPAddress.Parse("127.0.0.1"), 2222);//zainicjiuj ←-listenera na podanym porcie i adresie

4 tcpLsn.Start();

5 Socket sckt = tcpLsn.AcceptSocket();//funkcja blokująca do czasu nadejścia ←-połączenia

6 Byte[] odebraneBajty = newByte[100];

7 intret = sckt.Receive(odebraneBajty, odebraneBajty.Length, 0);

8 string tmp =null; 9 tmp = System.Text.Encoding.ASCII.GetString(odebraneBajty); 10 if (tmp.Length > 0) 11 { 12 Console.WriteLine("Odebrałem komunikat:"); 13 Console.WriteLine(tmp); 14 } 15 tcpLsn.Stop(); 16 }

Oraz wołamy w głównym programie:

Listing 3.4: Zmiany w Main

1 static voidMain(string[] args)

2 {

3 Console.WriteLine("Startuję serwer...");

4 serwuj();

(10)

W projekcie Hello Dodajemy metody polacz i wyslij oraz modyfikujemy

Ma-in:

Listing 3.5: Zmiany w Main

1

2 private static voidpolacz()

3 {

4 s =newSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

5 IPAddress hostadd = IPAddress.Parse("127.0.0.1");

6 intport = 2222;

7 8

9 IPEndPoint EPhost =newIPEndPoint(hostadd, port);

10 s.Connect(EPhost);

11 }

12

13 private static voidwyslij(string wiadomosc)

14 {

15

16 Byte[] byteData = Encoding.ASCII.GetBytes(wiadomosc.ToCharArray());

17 s.Send(byteData, byteData.Length, 0);

18 }

19

20 static voidMain(string[] args)

21 {

22 polacz();

23 Console.WriteLine("Wysyłam komunikat...");

24 wyslij("ala ma kota");

25 }

Teraz można uruchomić programy. Na konsoli Serwera powinniśmy zobaczyć przesłany komunikat.

(11)

Rozdział 4

Pierwsze Zadanie

Należy tak zmodyfikować program by stworzyć prosty komunikator. Użytkownik powinien móc naprzemiennie wpisywać tekst raz w jednym raz w drugim terminalu. Tekst powinien być przekazywany przez łącze TCP/IP tak jak na powyższym przykładzie. Program powinien się zakończyć gdy w której-kolwiek konsoli użytkownik napiszę słowo „quit”.

(12)

Rozdział 5

Komunikator wersja

współbieżna

Cytaty

Powiązane dokumenty

W dalszej rozmowie okazało się, że tego samego dnia (drugi dzień przyjmowania leku) zapisał się na zajęcia sportowe oraz wyszedł wieczorem ze znajomymi na koncert. Wszystkie

Psychologia rozwojowa na I i II etapie edukacyjnym dr Lesicz-Stanisławska Katarzyna NM N Terminologia specjalistyczna z zakresu prawa, ekonomii dr Michoń Marcin NM KwBMiA..

Terminologia specjalistyczna z zakresu prawa i ekonomii II mgr Mackay Anna AN KwBMia. Translatoryka dr Stefańska Elwira

Psychologia edukacyjna I i II etap Prośba o kontak z prowadzącym na adres emial mgr Iwona Grabowicz-Chądrzyńska NM NM NM NM NM Psychologia edukacyjna I i II etap Prośba o kontak

10:00 PNJ Konwersacje, Sprawności zintegrowane Prośba o kontakt z prowadzącym dr Nina Shtok AN Lektorat francuski Prośba o kontakt z mgr Kamilem Mrozkiem na adres emial mgr

DATA GODZINA PRZEDMIOT FORMA EGZAMINU WYKŁADOWCA GRUPA 10:00 PNJ Konwersacje, Sprawności zintegrowane Prośba o kontakt z prowadzącym dr Nina Shtok AN. 24.09.2020 Wszystkie

Zwracam się z prośbą o przedłużenie sesji egzaminacyjnej do dnia ……….

Klauzula uproszczonej likwidacji szkód (20 pkt.) – z zachowaniem pozostałych, nie zmienionych niniejszą klauzulą, postanowień ogólnych warunków ubezpieczenia i innych