Politechnika Warszawska Wydział Elektryczny. Kamil Deryński Nr albumu: Projekt koncepcyjny gry sieciowej.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Politechnika Warszawska Wydział Elektryczny. Kamil Deryński Nr albumu: 197570. Projekt koncepcyjny gry sieciowej."

Transkrypt

1 Politechnika Warszawska Wydział Elektryczny Kamil Deryński Nr albumu: Simple Online GAME Projekt koncepcyjny gry sieciowej. Praca na projekt indywidualny w roku 2007r. Kierunek Informatyka (semestr 4). Praca wykonana pod kierunkiem mgr inż. Konrada Andrzeja Markowskiego, Instytut Sterowania i Elektroniki Przemysłowej. Maj 2007

2 Streszczenie: W pracy tej przedstawiam koncepcję i konkretny zarys gry sieciowej, która to była tematem projektu indywidualnego. W poszczególnych działach opiszę wybrane technologie użyte podczas realizacji projektu, a także przedstawię powszechnie stosowane schematy konstrukcji takich aplikacji. Następnie opisuję szczegóły programu oraz problemu występujące podczas prac. Wprowadzenie: Gry sieciowe są naturalnym rozszerzeniem gier trybu jednoosobowego. Umożliwiają wspólną rozgrywkę dla więcej niż jednego gracza w tym samym czasie. Wraz z ewolucją i ekspansją Internetu tzw. tryb Multiplayer jest nieodłącznym elementem każdej gry. Popularyzację na szeroką skale gry wieloosobowej przez sieć zawdzięczamy głównie grą typu FPS (First Person Shooter), przedstawicielem takiego gatunku jest Quake, pierwsza część tej gry oferowała już bardzo dużą funkcjonalność dotyczącą rozgrywki wieloosobowej, wydajne serwery umożliwiające grę wielu uczestników jednocześnie dołączanych do gry podczas toczącej się już rozgrywki, a także optymalizowany przepływ danych, co pozwoliło na wymianę wielu danych dla obsługi skomplikowanego środowiska. (QuakeWorld) Weryfikacja wstępnych założeń projektu 1 : Projekt nie został zakończony wykonaniem w pełni działającej gry sieciowej, co jest naturalną implikacją nie spełnienia wszystkich założeń projektu, jednak prace trzymały się głównych przedstawionych wcześniej założeń, które wypunktuję poniżej: Założenia funkcjonalne: 1. Program umożliwia grę 2 osobową 2. Warstwa sieci aplikacji opiera się na modelu klientserwer. 3. Rozgrywka toczy się w czasie rzeczywistym. 4. Zarówno serwer jak i klient wbudowany jest w program, dokonujemy wyboru, jaką rolę będzie pełnić jedna z instancji programu. 5. Budowa gry umożliwia implementowanie typu zręcznościowego. 1 Wstępne założenia projektu dostępne w pliku WstępneZalozenia.pdf 2

3 Założenia implementacyjne: 1. Język programowania cała aplikacja napisana została z wykorzystaniem języka C++ z użyciem STL (Standard Template Library). 2. Wykorzystane biblioteki w początkowych założeniach miała być to biblioteka Allegro jednak zdecydowałem się ostatecznie na dobrze mi znaną przenośną bibliotekę SDL z pomocą biblioteki, SDL_gfx do rysowania prymitywów graficznych. 3. Warstwa sieciowa - SDL_net jako wraper programowania gniazd sieciowych dający pełną przenośność programu. 4. IDE Microsoft Visual Studio C++ Express wraz z kompilatorem MS dostarczanym w pakiecie. Wprowadzenie do użytych bibliotek oraz narzędzi: Biblioteka SDL: SDL(Simple DirectMedia Layer) to biblioteka ułatwiająca tworzenie gier oraz programów multimedialnych. Posiada oficjalne wsparcie dla ponad 20stu systemów operacyjnych w tym tych najpopularniejszych, czyli MS Windows, GNU/Linux, BSD, a także tych niszowych jak choćby AmigaOS czy też QNX. SDL nie oferuje wysokopoziomowych funkcji, jest raczej warstwą gwarantującą przenośność. Do tego celu właśnie została stworzona (LGPL) w 1998r przez Sama Lantiga z firmy Loki. Przykładowe gry korzystające z SDL: - Battle for Wesnoth - Frozen Bubble - Neverwinter Nights - Quake4 (tylko w wersji pod Linuksa) Ogólny schemat działania, SDL: 3

4 SDL_gfx biblioteka, która wyewoluowała z kodu SDL_gfxPrimitives obecnie oferuje znacznie więcej niż tylko udostępnianie funkcji do rysowania prymitywów. Biblioteka została napisana przez Andreas Schifflera, przez, którego udostępniana jest na licencji LGPL. Komponenty biblioteki SDL_gfx: Graphic Primitives (SDL_gfxPrimitves.h) Rotozoomer (SDL_rotozoom.h) Framerate control (SDL_framerate.h) MMX image filters (SDL_imageFilter.h) SDL_net biblioteka, dzięki, której można uzyskać przenośność programów sieciowych pisanych z wykorzystaniem gniazd. Uwalnia programistę z konieczności pisania tej samej funkcjonalności sieciowej dwa razy (implementacja socketów POSIX oraz implementacja winsock w MS windows). Microsoft Visual Studio C++ Express w pełni darmowa wersja do użytku komercyjnego środowiska programistycznego firmy Microsoft. Wersja Express jest ograniczona brakiem kilku funkcji oraz innym kompilatorem, który produkuje pliki wykonywalne wymagające pakietu Redistribution na komputerze, na którym chcemy uruchomić skompilowany program. Jednak niedogodność kompilatora można ominąć instalując darmowy Toolkit Niezaprzeczalną zaletą MS VS jest obecność zintegrowanego bardzo dobrego debugera, który znacznie ułatwia wykrywanie błędów. TortoiseSVN do zarządzania wersjami programu oraz do sprawniejszego panowania nad kodem używałem SubVersion, systemu kontroli wersji. Moje repozytorium jest dostępne w Internecie pod adresem svn://dragon.dust.pl/osg (we wczesnej fazie rozwoju do repozytorium nie ma publicznego dostępu). Do korzystania z SubVersion używam programu TortoiseSVN, który integruje się z interfejsem systemu Windows i umożliwia pełną obsługę możliwości udostępnianych przez serwer SVN. STL(Standard Template Library) standardowa biblioteka zgodna ze standardem ANSI języka C++. Umożliwia programowanie generyczne oraz m.in. dostęp do złożonych typów danych, a także udostępnia cały wachlarz algorytmów oraz dynamicznych struktur danych. 4

5 Opis enginu gry: Główny engine, na którym opiera się gra zawiera się w pliku engine.h, engine.cpp. Pliki te zawierają opis oraz implementacje klasy silnika gry, który dzieli się na kilka głównych części: 1. Główne zmienne i dane (powierzchnia ekranu, dane okna, zmienna wyjściowa, manager Frame Limitera itd.) 2. Metody głównego enginu: Init, Start, DoRender, DoThink (odpowiadające inicjalizacji bibliotek obsługi, inicjalizacja enginu, podstawowe funkcje renderujące, podstawy obliczeń oraz obsługa defaultowych akcji). 3. Cała gama metod wirtualnych: dzięki nim w klasie dziedziczącej po klasie engine, można definiować specyficzne dla implementacji konkretnej gry cechy). Listing definicji klasy engine (engine.h): #ifndef ENGINE_H #define ENGINE_H #include "SDL.h" #include "SDL_NET.h" #include "SDL_framerate.h" class CEngine { private: int m_iwidth; int m_iheight; bool m_bquit; const char* m_cztitle; SDL_Surface* m_pscreen; FPSmanager* fps_manager; protected: void DoThink(); void DoRender(); void SetSize(const int& iwidth, const int& iheight); void HandleInput(); public: CEngine(); virtual ~CEngine(); void Init(); void Start(); virtual void AdditionalInit () {} virtual void Think ( ) {} 5

6 virtual void Render( SDL_Surface* pdestsurface ) {} virtual void End() {} virtual void KeyUp (const int& ikeyenum) {} virtual void KeyDown (const int& ikeyenum) {} }; void SetTitle (const char* cztitle); const char* GetTitle(); SDL_Surface* GetSurface(); #endif // ENGINE_H Klasa myengine, która dziedziczy po klasie engine wzbogaca go o m.in. obsługę sieci. W obiekcie klasy myengine powoływane są między innymi obiekty klas CListener oraz CSender, które są interfejsami sieciowymi dla instancji serwera oraz klienta aplikacji. Obiekty te udostępniają metody służące do wysyłania danych oraz odbierania (void mysend(int,int,int) oraz void listen(void)). Realizacja warstwy sieciowej: Realizacja przesyłu danych wykonywana jest przy pomocy gniazd datagramowych, a więc wykorzystywany jest protokół UDP, który jest bezpołączeniową metodą komunikacji w sieci typu IP. Model wykorzystany do rozmowy aplikacji między sobą to tradycyjny klient-serwer. Schemat modelu klient-serwer: W aplikacji został zaimplementowany typowy model aplikacji sieciowej typu klient-serwer. Serwer tworzy gniazdo sieciowe, a następnie przypisuje go do adresu sieciowego komputera oraz do podanego numeru portu, na którym chcemy, aby nasz serwer nasłuchiwał. Po otrzymaniu informacji serwer przetwarza otrzymane dane, a następnie odsyła te dane nadawcy. Klient właściwie nie różni się bardzo od serwera. Jednak elementy odróżniające implementacje klienta od implementacji serwera to: otwieranie losowego portu z zakresu wysokich portów (SDLNet_UDP_Open(0) argument 0 oznacza port losowy), Bindowanie socketu na podany adres serwera oraz jego port ostatnia różnica to zamieniona kolejność wywoływania funkcji wysyłania i odbioru klient najpierw wysyła dane, a następnie oczekuje przetworzonych danych przez serwer, do którego kierował żądanie. 6

7 socket socket bind bind recv Dane (żądanie) send Przetwarza nie żądania send Dane (odpowiedź) recv Rys. Uproszczony schemat modelu klient-serwer. Definicja klasy właściwego serwera UDP: #ifndef UDP_SERVER_H #define UDP_SERVER_H #include <stdio.h> #include <stdlib.h> #include <string.h> #include "SDL_net.h" class CUDP_server { private: UDPsocket sd; IPaddress srvadd; UDPpacket *p; public: 7

8 CUDP_server(char* host, int port); char* getdata(); void setdata(char* inputdata); void restart(); }; #endif Opis pakietu UDP typu UDPpacket: p->channel kanał pakietu (priorytety). p->data - dane, które niesie pakiet. p->len - długość danych p->maxlen - maksymalna długość danych - p->address.host - adres hosta p->address.port - numer portu Wydruk z logu serwera gry: UDP Packet incoming Chan: -1 Data: 400;300;0; Data sizeof: 4 Len: 10 Maxlen: 32 Status: 10 Address: a00a8c Wydruk pakietu w postaci ASCII wczesna wersja programu. ASCII [CnE$T[l400;300; Po nagłówku pakietu UDP następują dane przesyłane z klienta do serwera (zaznaczone na czerwono). Zrzut ekranu na podgląd pakietu ze snifera (Wireshark) Dlaczego UDP? Protokół UDP jest bezpołączeniowy, a więc nie wykorzystuje się tu mechanizmu połączeń i mechanizmu 3-krotnego uścisku 8

9 dłoni. Dzięki temu UDP jest znacznie szybsze niż połączenia TCP, szacuje się, że dla rozwiązań wymagających powyżej 4 połączeń na sekundę użycie protokołu bezpołączeniowego jest znacznie korzystniejsze. Jednak najważniejsza wadą UDP jest brak potwierdzenia odbiorcy o właściwym otrzymaniu pakietu. Możliwa jest, więc utrata pakietu bez wiedzy nadawcy. Nie jest to problemem przy nadawaniu kilku pakietów na sekundę, ponieważ informacje nadmiarowe uzupełniające ewentualny brak. Problem pojawia się w przypadku synchronizacji gry dzięki numerowi klatki, w którym wykonywana jest dana akcja. Trzeba, więc używać nie poklatkowej synchronizacji oraz zapewniać podstawową kontrole przepływu pakietów UDP między klientem a serwerem. Oba te warunki gwarantują niezawodne działanie całego mechanizmu. Główne problemy i metody ich rozwiązania: Frame Rate Limiter, problem szybkości? Silnik gry opiera się na głównej ciasnej pętli, której zadaniem jest uaktualnianie danych środowiska gry, wykonywaniem cyklicznych obliczeń, wywoływaniem interfejsów komunikacyjnych oraz renderingu świata gry. Komputer stara się wykonywać program jak najszybciej może, a więc szybkość programu bezpośrednio zależy od częstotliwości taktowania zegara procesora. Wniosek jest prosty i naturalny im szybszy procesor, tym szybciej program będzie działać, a co za tym idzie tym częściej będzie wykonywana główna pętla enginu gry. Gdyby program uruchamiany był zawsze na identycznych maszynach nie było by tego rozdziału, problem by po prostu nie istniał. Twórcy gier z przełomu lat 80 i 90tych często nie zadawali sobie trudu, aby w ogóle ten problem rozwiązywać. Stąd też zjawisko super szybkiego działania niektórych starych gier na współczesnych komputerach, w wyniku powoduje to kompletną nie możliwość gry (trudność opanowania tak szybkiego rozwoju sytuacji przez człowieka). We współczesności problem regulacji szybkości gry jest szczególnie ważny w obliczu ogromnych różnic w mocach obliczeniowych obecnie dostępnych maszyn. Nikogo dziś nie dziwią różnice mierzone w gigahercach, a o procesorach wielordzeniowych nie wspominając. Nie mniej ważnym powodem dla celowości normalizacji szybkości działania gry jest fakt komunikacji różnych instancji programu na różnych maszynach przez sieć. Gdy jeden gracz będzie dysponował mocnym sprzętem, a jego partner słabszym nie może przecież zaistnieć sytuacja, gdy program uruchomiony na szybszym komputerze będzie działać znacznie 9

10 szybciej, co wtedy z danymi przekazywanymi od gracza ze słabym komputerem? Przesyłanie danych będzie znacznie opóźnione nie z winy gracza. W efekcie jeden z graczy będzie miał nierówne szanse, komunikacja obu programów będzie nie równomierna (szybszy program będzie wysyłał dane z większą rozdzielczością ). Generalizując, już na etapie tego problemu rozgrywka będzie całkowicie zdesynchronizowana, gracze będą grać w dwie różne gry. Oczywiście problem synchronizacji nie opiera się tylko na znormalizowaniu czasu wykonania programu jednak jest ważnym czynnikiem tego zagadnienia. Rozwiązanie problemu normalizacji prędkości wykonywania. Problem ten można rozwiązać wykorzystując niezawodny licznik dostępny w komputerze, a więc licznik taktów procesora do pomiaru czasu i wprowadzeniu na tej podstawie potrzebnych opóźnień do uzyskania pożądanej prędkości. Początkowo pomiar czasu i związane z tym kalkulacje wykonałem na podstawie timerów udostępnianych w podstawowej bibliotece SDL. Obsługa tej funkcji została zaimplementowana w główny engin gry. Możliwe było wtedy mierzenie czasu, który upłynął od ostatniego wywołania metody Think(), a więc od ostatnich zmian w parametrach całego środowiska. Jednak wprowadzanie na tej podstawie opóźnień wykorzystując pustą pętle while lub korzystniejszą funkcję SDL_Delay(int) nie dawało stabilnych i niezawodnych rezultatów. Przy rozważaniach i próbach z timerami implementowałem nawet osobną klasę obsługującą timery w SDLu (timer.h reprezentacja UML tej klasy na rysunku obok - > ). Timer -startticks: int -pausedticks: int -paused: bool -started: bool <<create>>-timer() +start(): void +stop(): void +pause(): void +unpause(): void +get_ticks(): int +is_started(): bool +is_paused(): bool Ostatecznie jednak ze wszystkich powyższych rozwiązań zrezygnowałem na rzecz biblioteki SDL_framerate.h, która wykorzystuje swoistą interpolację opóźnień, daje bardzo dobre i niezawodne wyniki, a jej bardzo proste użycie jest jej niezaprzeczalną zaletą. Bibliotek SDL_framerate.h udostępnia następujące funkcję: void SDL_initFramerate(FPSmanager * manager); int SDL_setFramerate(FPSmanager * manager, int rate); int SDL_getFramerate(FPSmanager * manager); void SDL_framerateDelay(FPSmanager * manager); 10

11 Jak widać funkcje te operują na wskaźniku na typ FPSmanager, który jest powoływany w części głównej inicjalizacji zmiennych enginu. Zasada działania SDL_framerate: Opóźnienie potrzebne to utrzymania prawidłowego tempa działania programu generuje funkcja SDL_framerateDelay, umieszczamy ją np. w części odpowiedzialnej za renderingu w głównej pętli programu. Jeśli komputer nie może utrzymać narzuconego tempa ustawia opóźnienie na zero i restartuje interpolację opóźnienia. Schemat obliczenia opóźnień w SDL_framerate: Rys. Schemat zaczerpnięty z dokumentacji SDL_gfx. 11

12 Synchronizacja. Synchronizacja gry sieciowej jest podstawowym zagadnieniem w pisaniu tego typu aplikacji. Przy rozwiązywaniu tego typu problemów trzeba wziąć pod uwagę wiele czynników mogących zdesynchronizować grę np. opóźnienia w przesyłaniu danych przez sieć, różne stany instancji programów działających na różnych komputerach, utrata danych podczas przesyłania itd. Synchronizacja zaimplementowana obecnie w programie opiera się na prostym mechanizmie oczekiwania na transmisję. Jest to zawodny sposób, który gwarantuje jedynie eliminację opóźnień na reakcję drugiego gracza w grze. Jest to, więc nie zupełnie metoda synchronizacji. Jednak zakładając obecnie wysoką częstotliwość informowania drugą instancję programu o zmianach można założyć, że rozgrywka jest synchroniczna. Dalsza rozbudowa synchronizacji będzie polegała na implementacji komunikatów z obsługą ich typów oraz priorytetów. Wtedy synchronizacja będzie opierała się na numerze klatki animacji, w której nastąpiła dana akcja. Jest to powszechnie stosowana praktyka przez programistów gier sieciowych. Konkretnym przykładem zastosowania tego rozwiązania jest popularna gra Starcraft. Rendering: Obecnie rendering całego świata gry realizowany jest prymitywną metodą rysowania prostych elementów w buforze ekranu przy każdym kroku pętli oraz czyszczenia tego bufora przy odświeżeniu. Jest to tymczasowy sposób mający na celu wizualizację dotychczasowych dokonań. Kompilacja projektu: Visual Studio C Express : Kompilacja odbywa się w tradycyjny sposób należy otworzyć plik projektu w VS, a następnie dodać ścieżki do bibliotek linkowanych dynamicznie SDL, SDL_net, SDL_gfx. Pamiętając, że należy ustawić ścieżki dla plików h czyli Include files oraz Library files dla plików z katalogów lib w poszczególnych bibliotekach. 12

13 Rys. Tool>Options>Project and Solutions> VC++ Directories Po dokonaniu tych ustawień należy zmienić profil, na release, a następnie wcisnąć klawisz, F7, aby skompilować program. Plik binarny znajdzie się w katalogu release. UWAGA: Visual Studio 2005 Express generuje pliki binarne, które uruchamiają się na systemach Windows posiadających odpowiednie pakiety Redistribution Packages oraz odpowiednie wersje C Runtime Library. Na systemach systemach systemach najnowszymi aktualizacjami nie będzie potrzebna żadna ingerencja jednak, na niektórych potrzebne będzie instalacja tych pakietów lub/oraz skopiowanie odpowiednich plików dll. (katalog dodatkowe_dll). Uniwersalne binarki można otrzymać kompilując projekt pełną wersją Visual Studio (oczywiście chodzi o kompilator cl) lub skorzystanie z darmowego Toolkit 2003 obsługiwanego z lini komend (cmd). Parametry z jakimi kompilowany był projekt: /O2 /GL /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /FD /EHsc /MD /Fo"Release\\" /Fd"Release\vc80.pdb" /W2 /nologo /c /Zi /TP /errorreport:promet Kompilacja na innych systemach : Kompilacja na inne systemy niż windows jest możliwa dzięki zastosowaniu przenośnych bibliotek. Jednak nie kompilowałem projektu w innym środowisku niż windows i VS Express, więc nie będę opisywał tu procesu kompilacji na innych systemach. 13

14 Uruchomienie: W katalogu z plikiem uruchomieniowym osg.exe muszą znajdować się również pliki z dynamicznie linkowanymi bibliotekami: SDL.dll SDL_gfx.dll SDL_net.dll a, także plik konfiguracyjny o nazwie osg.conf, który musi zawierać: w pierwszej linii adres ip, na którym będzie działał serwer gry, a więc np w drugiej linii numer portu serwera np w trzeciej linii natomiast znajduje się wartość 0 jeśli chcemy, aby aplikacja działała jako klient lub 1 jeśli chcemy uruchomić aplikacje w roli serwera. Przykładowy plik konfiguracyjny: Dla serwera: Dla klienta: UWAGA: Zalecane jest uruchamiać jako pierwszy kolejności aplikacje serwera, a później aplikacje klienta. Sterowanie: Sterowanie graczem odbywa się przy pomocy kursorów. Gracz reprezentowany jest jako biały kwadrat, a partner jako czerwony kwadrat. Wyjście z programu przy pomocy ESC lub poprzez zamknięcie okna. Dodatkowe uwagi: Po zamknięciu aplikacji w katalogu z plikiem exe zostaną wygenerowane dwa plik stdout.txt i stderr.txt. Zawierają one diagnostyczne listingi konfiguracji programu oraz listing pakietów odebranych przez serwer. 14

15 Rys. Ekran gry. Uwagi końcowe: Aplikacja nie jest w pełni funkcjonalną grą, a jedynie demonstruje wstępne możliwości uniwersalnego, enginu gry sieciowej, jaki staram się stworzyć. Łatwo można sobie wyobrazić jak proste jest dodanie teraz logiki dla najróżniejszych gier. Sprowadza się to jedynie do wypełniania i rozwijania implementacji w zasadzie 3 metod z klasy my_engin, które odpowiadają za inicjalizacje zmiennych gry, obliczenia i aktualizację parametrów oraz rendering. Oczywiście jak wspomniałem rozwój logiki gry nie jest jedynym zadaniem na przyszłość, trzeba zaimplementować mechanizmy synchronizacyjne oraz zoptymalizować interfejsy sieciowe aplikacji. 15

Klient-Serwer Komunikacja przy pomocy gniazd

Klient-Serwer Komunikacja przy pomocy gniazd II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe Wykład 5: Warstwa transportowa: TCP i UDP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 5 1 / 22 Warstwa transportowa Cechy charakterystyczne:

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt 1. Wprowadzenie Wymagania wstępne: wykonanie ćwiczeń Adresacja IP oraz Implementacja aplikacji sieciowych z wykorzystaniem interfejsu gniazd

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania

Bardziej szczegółowo

Mechanizmy pracy równoległej. Jarosław Kuchta

Mechanizmy pracy równoległej. Jarosław Kuchta Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy

Bardziej szczegółowo

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja Instytut Telekomunikacji Wydział Elektroniki i Technik Informacyjnych Politechnika Warszawska, marzec 2015 Wprowadzenie Ćwiczenie jest wykonywane

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania Autor: Anna Nowak Promotor: dr inż. Jan Kowalski Kategorie: gra logiczna Słowa kluczowe: Sudoku, generowanie plansz, algorytmy,

Bardziej szczegółowo

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1 Instrukcja obsługi ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1 1 ArtPlayer to proste oprogramowanie umożliwiające odtwarzanie plików video i ich wybór poprzez protokół

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

Tango-RedPitaya. Tango device server for RedPitaya multi-instrument board. Grzegorz Kowalski daneos@daneos.com 31 sierpnia 2015

Tango-RedPitaya. Tango device server for RedPitaya multi-instrument board. Grzegorz Kowalski daneos@daneos.com 31 sierpnia 2015 Tango-RedPitaya Tango device server for RedPitaya multi-instrument board Grzegorz Kowalski daneos@daneos.com 31 sierpnia 2015 Streszczenie Tango-RedPitaya jest serwerem urządzeń Tango sterującym płytką

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

PhysX Visual Debugger. Tomasz Gańko

PhysX Visual Debugger. Tomasz Gańko PhysX Visual Debugger Tomasz Gańko Co to jest Nvidia PhysX? NVIDIA PhysX to wydajny silnik fizyczny, zoptymalizowany m.in. do działania na równoległych procesorach kart graficznych. Jego głównym przeznaczeniem

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Materiały dodatkowe. Simulink Real-Time

Materiały dodatkowe. Simulink Real-Time Katedra Inżynierii Systemów Sterowania Materiały dodatkowe Simulink Real-Time Opracowali: mgr inż. Tomasz Karla Data: Listopad, 2016 r. Wstęp Simulink Real-Time jest środowiskiem pozwalającym na tworzenie

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wprowadzenie Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Dokumentacja końcowa projektu z ZPR

Dokumentacja końcowa projektu z ZPR Dokumentacja końcowa projektu z ZPR Temat projektu: Prowadzący projekt: Zespół projektowy: Losowe przeszukiwanie stanów dr inż. Robert Nowak Piotr Krysik Kamil Zabielski 1. Opis projektu Projekt ma za

Bardziej szczegółowo

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat 02 Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat 2012.10.07 Program w języku C Program w języku C jest pisany w pliku tekstowym, następnie przetwarzany przez kompilator do pliku

Bardziej szczegółowo

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Laboratorium Sieci Komputerowych - 2

Laboratorium Sieci Komputerowych - 2 Laboratorium Sieci Komputerowych - 2 Analiza prostych protokołów sieciowych Górniak Jakub Kosiński Maciej 4 maja 2010 1 Wstęp Zadanie polegało na przechwyceniu i analizie komunikacji zachodzącej przy użyciu

Bardziej szczegółowo

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1. Zakład Elektronicznych Urządzeń Pomiarowych POZYTON sp. z o. o. 42-200 Częstochowa ul. Staszica 8 p o z y t o n tel. : (034) 361-38-32, 366-44-95, 364-88-82, 364-87-50, 364-87-82, 364-87-62 tel./fax: (034)

Bardziej szczegółowo

1. Opis. 2. Wymagania sprzętowe:

1. Opis. 2. Wymagania sprzętowe: 1. Opis Aplikacja ARSOFT-WZ2 umożliwia konfigurację, wizualizację i rejestrację danych pomiarowych urządzeń produkcji APAR wyposażonych w interfejs komunikacyjny RS232/485 oraz protokół MODBUS-RTU. Aktualny

Bardziej szczegółowo

MODEL WARSTWOWY PROTOKOŁY TCP/IP

MODEL WARSTWOWY PROTOKOŁY TCP/IP MODEL WARSTWOWY PROTOKOŁY TCP/IP TCP/IP (ang. Transmission Control Protocol/Internet Protocol) protokół kontroli transmisji. Pakiet najbardziej rozpowszechnionych protokołów komunikacyjnych współczesnych

Bardziej szczegółowo

Protokoły sieciowe - TCP/IP

Protokoły sieciowe - TCP/IP Protokoły sieciowe Protokoły sieciowe - TCP/IP TCP/IP TCP/IP (Transmission Control Protocol / Internet Protocol) działa na sprzęcie rożnych producentów może współpracować z rożnymi protokołami warstwy

Bardziej szczegółowo

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ www.e-awizo.pl BrainSoft sp. z o. o. ul. Bolesława Chrobrego 14/2 65-052 Zielona Góra tel.68 455 77 44 fax 68 455 77 40 e-mail: biuro@brainsoft.pl

Bardziej szczegółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows. Kod szkolenia: Tytuł szkolenia: PS/WIN Programowanie systemowe w Windows Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemach z rodziny Microsoft Windows,

Bardziej szczegółowo

ArtPlayer. Odtwarzacz plików video sterowany poprzez Artnet/DMX V Instrukcja obsługi.

ArtPlayer. Odtwarzacz plików video sterowany poprzez Artnet/DMX V Instrukcja obsługi. ArtPlayer Instrukcja obsługi Odtwarzacz plików video sterowany poprzez Artnet/DMX V1.1.0.2 1 ArtPlayer Modus to proste oprogramowanie umożliwiające odtwarzanie plików video i ich kontrolę poprzez protokół

Bardziej szczegółowo

Praca w środowisku Visual Studio 2008, Visual C

Praca w środowisku Visual Studio 2008, Visual C Praca w środowisku Visual Studio 2008, Visual C++ 2008 mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Tworzenie aplikacji konsolowych 2 3 Tworzenie nowego projektu aplikacji

Bardziej szczegółowo

DHL CAS ORACLE Wymagania oraz instalacja

DHL CAS ORACLE Wymagania oraz instalacja DHL CAS ORACLE Wymagania oraz instalacja Opis: Niniejszy dokument opisuje wymagania niezbędne do instalacji bazy danych DHL CAS ORACLE. Przedstawia również sam proces instalacji. Przeznaczony jest dla

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 7 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Praca z repozytorium kodu Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html

Bardziej szczegółowo

Programowanie w C. dr inż. Stanisław Wszelak

Programowanie w C. dr inż. Stanisław Wszelak Programowanie w C dr inż. Stanisław Wszelak Przeszłość i przyszłość składni programowania w C Ken Thompson Denis Ritchie Bjarne Stoustrup Zespoły programistów B C C++ C# 1969 rok Do SO UNIX 1972 rok C++

Bardziej szczegółowo

Programowanie proceduralne w języku C++ Podstawy

Programowanie proceduralne w języku C++ Podstawy Programowanie proceduralne w języku C++ Podstawy Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

Wprowadzenie do biblioteki klas C++

Wprowadzenie do biblioteki klas C++ Instrukcja laboratoryjna nr 7 Programowanie w języku C 2 (C++ poziom zaawansowany) Wprowadzenie do biblioteki klas C++ WxWidgets mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz dr inż. Wilk-Jakubowski

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych Dziedzina Unix laboratorium: 06 Kraków, 2014 06. Programowanie Usług Sieciowych

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć

Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć Kilku znajomych chce zagrać w grę sieciową. Obecnie większość gier oferuje możliwość gry przez internet. Jednak znajomi chcą zagrać ze sobą bez dostępu

Bardziej szczegółowo

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 10 sierpnia 2017

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 10 sierpnia 2017 BSX PRINTER INSTRUKCJA UŻYTKOWNIKA! Autor: Karol Wierzchołowski 10 sierpnia 2017 SPIS TREŚCI WSTĘP... 3 INTERFEJS PROGRAMU... 5 KONFIGURACJA PROGRAMU... 6 DRUKOWANIE PARAGONÓW I FAKTUR... 8 REJESTRACJA

Bardziej szczegółowo

Wykaz zmian w programie WinAdmin Replikator

Wykaz zmian w programie WinAdmin Replikator Wykaz zmian w programie WinAdmin Replikator Pierwsza wersja programu 1.0.0.1 powstała w czerwcu 2010. kod źródłowy programu zawiera ponad 6 900 wierszy. Modyfikacje/zmiany w wersji 1.0.4.0 (październik

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Spis treści Wprowadzenie...n...n... 5 Jak korzystać z tej książki?...t... 6 Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Podsumowanie...t...t...15 Rozdział 2. Rozdział

Bardziej szczegółowo

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 30 marca 2015

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 30 marca 2015 ! BSX PRINTER INSTRUKCJA UŻYTKOWNIKA Autor: Karol Wierzchołowski 30 marca 2015 SPIS TREŚCI WSTĘP... 3 INTERFEJS PROGRAMU... 5 KONFIGURACJA PROGRAMU... 6 DRUKOWANIE PARAGONÓW I FAKTUR... 8 REJESTRACJA PROGRAMU...

Bardziej szczegółowo

Q E M U. http://www.qemu.com/

Q E M U. http://www.qemu.com/ http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama

Bardziej szczegółowo

Dokumentacja projektu QUAIKE Architektura oprogramowania

Dokumentacja projektu QUAIKE Architektura oprogramowania Licencjacka Pracownia Oprogramowania Instytut Informatyki Uniwersytetu Wrocławskiego Jakub Kowalski, Andrzej Pilarczyk, Marek Kembrowski, Bartłomiej Gałkowski Dokumentacja projektu QUAIKE Architektura

Bardziej szczegółowo

Konspekt pracy inżynierskiej

Konspekt pracy inżynierskiej Konspekt pracy inżynierskiej Wydział Elektryczny Informatyka, Semestr VI Promotor: dr inż. Tomasz Bilski 1. Proponowany tytuł pracy inżynierskiej: Komunikator Gandu na platformę mobilną Android. 2. Cel

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Projekt i implementacja filtra dzeń Pocket PC

Projekt i implementacja filtra dzeń Pocket PC Projekt i implementacja filtra pakietów w dla urządze dzeń Pocket PC Jakub Grabowski opiekun pracy: prof. dr hab. Zbigniew Kotulski 2005-10-25 Zagrożenia Ataki sieciowe Problemy z bezpieczeństwem sieci

Bardziej szczegółowo

76.Struktura oprogramowania rozproszonego.

76.Struktura oprogramowania rozproszonego. 76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Protokoły zdalnego logowania Telnet i SSH

Protokoły zdalnego logowania Telnet i SSH Protokoły zdalnego logowania Telnet i SSH Krzysztof Maćkowiak Wprowadzenie Wykorzystując Internet mamy możliwość uzyskania dostępu do komputera w odległej sieci z wykorzystaniem swojego komputera, który

Bardziej szczegółowo

Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project

Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project Aplikacja Sieciowa Jedną z fundamentalnych właściwości wielu aplikacji jest możliwość operowania pomiędzy jednostkami (np. PC), które włączone są do sieci. W Windows operacja ta jest możliwa przy wykorzystaniu

Bardziej szczegółowo

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego

Bardziej szczegółowo

Dokumentacja techniczna

Dokumentacja techniczna I N F O R M A T Y K A S T O S O W A N A E A I I E A G H Dokumentacja techniczna Mobilny asystent administratora Łukasz Świder Radosław Gabiga Łukasz Podolski Paweł Knap Marec Cabaj Maciej Stygar Aleksander

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Zacznij Tu! Poznaj Microsoft 2012. Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Zacznij Tu! Poznaj Microsoft 2012. Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska Zacznij Tu! Poznaj Microsoft 2012 Visual Basic Michael Halvorson Przekład: Joanna Zatorska APN Promise, Warszawa 2013 Spis treści Wstęp...................................................................vii

Bardziej szczegółowo

Szablony funkcji i klas (templates)

Szablony funkcji i klas (templates) Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp

Bardziej szczegółowo

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe Wykład 7: Transport: protokół TCP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 7 1 / 23 W poprzednim odcinku Niezawodny transport Algorytmy

Bardziej szczegółowo

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx 1. WPROWADZENIE Program AutoCAD ma wielu użytkowników i zajmuje znaczące miejsce w graficznym

Bardziej szczegółowo

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Ćwiczenie nr: 9 Obliczenia rozproszone MPI Ćwiczenie nr: 9 Temat: Obliczenia rozproszone MPI 1. Informacje ogólne MPI (Message Passing Interface) nazwa standardu biblioteki przesyłania komunikatów dla potrzeb programowania równoległego w sieciach

Bardziej szczegółowo

TELEFONIA INTERNETOWA

TELEFONIA INTERNETOWA Politechnika Poznańska Wydział Elektroniki i Telekomunikacji Katedra Sieci Telekomunikacyjnych i Komputerowych TELEFONIA INTERNETOWA Laboratorium TEMAT ĆWICZENIA INSTALACJA I PODSTAWY SERWERA ASTERISK

Bardziej szczegółowo

26.X.2004 VNC. Dawid Materna

26.X.2004 VNC. Dawid Materna 26.X.2004 Zastosowanie programu VNC do zdalnej administracji komputerem Autor: Dawid Materna Wstęp W administracji systemami operacyjnymi często zachodzi potrzeba do działania na Pulpicie zarządzanego

Bardziej szczegółowo

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium komputerowych systemów pomiarowych Ćwiczenie 7 Wykorzystanie protokołu TCP do komunikacji w komputerowym systemie pomiarowym 1.

Bardziej szczegółowo

Problemy techniczne SQL Server

Problemy techniczne SQL Server Problemy techniczne SQL Server Co zrobić, jeśli program Optivum nie łączy się poprzez sieć lokalną z serwerem SQL? Programy Optivum, które korzystają z bazy danych umieszczonej na serwerze SQL, mogą być

Bardziej szczegółowo

Król Łukasz Nr albumu: 254102

Król Łukasz Nr albumu: 254102 Król Łukasz Nr albumu: 254102 Podstawy o Delphi Język programowania, którego można używać w środowiskach firmy Borland, Embarcadero, Microsoft (Delphi Prism), oraz w środowisku Lazarus. Narzędzia te są

Bardziej szczegółowo

CONFidence 13/05/2006. Jarosław Sajko, PCSS Jaroslaw.sajko@man.poznan.pl

CONFidence 13/05/2006. Jarosław Sajko, PCSS Jaroslaw.sajko@man.poznan.pl IPTables Hacking CONFidence 13/05/2006 Jarosław Sajko, PCSS Jaroslaw.sajko@man.poznan.pl 1 Zamiast planu 2 ZB PCSS Praca operacyjna w ramach ogólnopolskiej szerokopasmowej sieci PIONIER oraz zasobów Centrum

Bardziej szczegółowo

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych

Bardziej szczegółowo

Instrukcja użytkownika ARsoft-CFG WZ1 4.0

Instrukcja użytkownika ARsoft-CFG WZ1 4.0 05-090 Raszyn, ul Gałczyńskiego 6 tel. (+48) 22 101-27-31, 22 853-48-56 automatyka@apar.pl www.apar.pl Instrukcja użytkownika ARsoft-CFG WZ1 4.0 wersja 4.0 www.apar.pl 1 1. Opis Aplikacja ARsoft-CFG umożliwia

Bardziej szczegółowo

Wykaz zmian w programie SysLoger

Wykaz zmian w programie SysLoger Wykaz zmian w programie SysLoger Pierwsza wersja programu 1.0.0.1 powstała we wrześniu 2011. Funkcjonalność pierwszej wersji programu: 1. Zapis logów do pliku tekstowego, 2. Powiadamianie e-mail tylko

Bardziej szczegółowo

EXSO-CORE - specyfikacja

EXSO-CORE - specyfikacja EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.

Bardziej szczegółowo

Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła

Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła Wydział Inżynierii Mechanicznej i Informatyki Instytut Informatyki Teoretycznej i Stosowanej

Bardziej szczegółowo

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. Gdy już posiadamy serwer i zainstalowany na nim system Windows XP, 7 lub 8 postawienie na nim serwera stron WWW jest bardzo proste. Wystarczy

Bardziej szczegółowo

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej SEGMENT TCP CZ. I Numer portu źródłowego (ang. Source port), przeznaczenia (ang. Destination port) identyfikują aplikacje wysyłającą odbierającą dane, te dwie wielkości wraz adresami IP źródła i przeznaczenia

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ferliński Nr albumu: 187386 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Kod produktu: MP-W7100A-RS232

Kod produktu: MP-W7100A-RS232 KONWERTER RS232 - TCP/IP ETHERNET NA BAZIE W7100A FIRMY WIZNET MP-W7100A-RS232 jest gotowym do zastosowania konwerterem standardu RS232 na TCP/IP Ethernet (serwer portu szeregowego). Umożliwia bezpośrednie

Bardziej szczegółowo

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy

Bardziej szczegółowo

Tworzenie aplikacji rozproszonej w Sun RPC

Tworzenie aplikacji rozproszonej w Sun RPC Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki

Bardziej szczegółowo

Sieci komputerowe Warstwa transportowa

Sieci komputerowe Warstwa transportowa Sieci komputerowe Warstwa transportowa 2012-05-24 Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 Wprowadzenie umożliwia jednoczesną komunikację poprzez sieć wielu aplikacjom uruchomionym

Bardziej szczegółowo

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program Przygotował: Jakub Wawrzeńczak 1. Wprowadzenie Lekcja przedstawia wykorzystanie środowiska LabVIEW 2016

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis MATERIAŁY DO ZAJĘĆ I Podstawowe pojęcia Spis treści I. Algorytm II. Schemat blokowy III. Struktury danych IV. Program komputerowy V. Opis środowiska programistycznego VI. Obsługa wejścia wyjścia VII. Przykład

Bardziej szczegółowo

Ćwiczenie 2. Obsługa gniazd w C#. Budowa aplikacji typu klient-serwer z wykorzystaniem UDP.

Ćwiczenie 2. Obsługa gniazd w C#. Budowa aplikacji typu klient-serwer z wykorzystaniem UDP. Ćwiczenie 2. Obsługa gniazd w C#. Budowa aplikacji typu klient-serwer z wykorzystaniem UDP. Wprowadzenie Gniazdo (ang. socket) z naszego punktu widzenia (czyli programów w.net) reprezentuje najniższy poziom

Bardziej szczegółowo

Aplikacja Sieciowa wątki po stronie klienta

Aplikacja Sieciowa wątki po stronie klienta Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się

Bardziej szczegółowo

Instalacja i konfiguracja Symfonia.Common.Server oraz Symfonia.Common.Forte

Instalacja i konfiguracja Symfonia.Common.Server oraz Symfonia.Common.Forte Instalacja i konfiguracja Symfonia.Common.Server oraz Symfonia.Common.Forte Instalacja Symfonia.Common.Server 0 2 Spis treści Spis treści 2 Instalacja Symfonia.Common.Server 3 Ważne zalecenia... 3 Konfiguracja

Bardziej szczegółowo

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark Topologia Cele Część 1: Zapisanie informacji dotyczących konfiguracji IP komputerów Część 2: Użycie programu Wireshark do przechwycenia

Bardziej szczegółowo