Winsock. Sieci Komputerowe II Wyk ład 3

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

Download "Winsock. Sieci Komputerowe II Wyk ład 3"

Transkrypt

1 Winsock Sieci Komputerowe II Wyk ład 3

2 Plan Przygotowanie środowiska Inicjacja Winsock Aplikacja klienta: tworzenie socketu łączenie z socketem serwera wysyłanie i odbieranie danych rozłączanie klienta Aplikacja serwera: tworzenie socketu wiązanie socketu nasłuchiwanie akceptowanie połączenia odbieranie i wysyłanie danych rozłączanie serwera

3 Przygotowanie środowiska Wszelkie prezentowane uwagi dotyczą środowiska MS Visual Studio W środowisku należy ustawić dostęp do biblioteki WS2_32.lib Na początku programu należy dołączyć dwa pliki nagłówkowe: winsock2.h zawierający większość funkcji, struktur i definicji do obsługi socketów ws2tcpip.h zawierający pozostałe funkcje i struktury nie ujęte w winsock2.h a zawarte w dokumencie WinSock 2 Protocol-Specific Annex dla protokołu TCP/IP Czasami może być konieczne użycie plików nagłówkowych iphlpapi.h (IP Helper API) i/lub windows.h o warunkach użycia tych plików należy doczytać w dokumentacji środowiska

4 Windows Inicjacja Winsock Przed przystąpieniem do korzystania z funkcji biblioteki Winsock należy zainicjować bibliotekę dynamiczną Windows Sockets DLL (WS2_32.dll) w następujący sposób: stworzyć obiekt typu WSADATA o nazwie wsadata WSADATA wsadata; wywołać funkcję WSAStartup i sprawdzić wynik wywołania pod względem błędów int iresult; // Initialize Winsock iresult = WSAStartup(MAKEWORD(2,2), &wsadata); if (iresult!= 0) { printf("wsastartup failed: %d\n", iresult); return 1; }

5 Tworzenie socketu dla klienta krok 1 Zadeklarować obiekt addrinfo zawierający strukturę sockaddr i zainicjować te wartości struct addrinfo *result = NULL, *ptr = NULL, hints; ZeroMemory( &hints, sizeof(hints) ); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; Nie jest określona wersja adresów IP zarówno adres IPv4, jak i IPv6 mogą być użyte (ai_family) Wymaganym przez aplikację typem socketu jest socket strumieniowy dla protokołu TCP (ai_socktype, ai_protocol)

6 Tworzenie socketu dla klienta krok 2 Wywołać funkcję getaddrinfo żądanie adresu IP dla nazwy serwera podanej w linii komend #define DEFAULT_PORT "27015" // Resolve the server address and port iresult = getaddrinfo(argv[1], DEFAULT_PORT, &hints, &result); if (iresult!= 0) { printf("getaddrinfo failed: %d\n", iresult); WSACleanup(); return 1; } Port TCP po stronie serwera, z jakim w tym przykładzie chce się połączyć klient, to port (stała DEFAULT_PORT) Funkcja getaddrinfo zwraca wartość, która jest sprawdzana pod kątem wystąpienia błędów. WSACleanup kończy użycie WS2_32.dll

7 Tworzenie socketu dla klienta krok 3 Utworzyć obiekt ConnectSocket typu SOCKET SOCKET ConnectSocket = INVALID_SOCKET;

8 Tworzenie socketu dla klienta krok 4 Wywołać funkcję socket i przypisać zwracaną przez nią wartość do zmiennej ConnectSocket // Attempt to connect to the first address returned by the call to getaddrinfo ptr=result; // Create a SOCKET for connecting to server ConnectSocket = socket(ptr->ai_family, ptr->ai_socktype, ptr->ai_protocol); Używany jest pierwszy adres IP zwrócony przez funkcję getaddrinfo, który odpowiada parametrom określonym w strukturze hints (typ socketu SOCK_STREAM, typ protokołu IPROTO_TCP, nieokreślona wersja adresów IP AF_UNSPEC) Jeśli klient ma się kontaktować z serwerem wyłącznie za pośrednictwem adresu IP w wersji 4 lub IP w wersji 6 to zamiast AF_UNSPEC należy użyć odpowiednio AF_INET lub AF_INET6

9 Łączenie z socketem serwera (1) Sprawdzenie czy nie wystąpiły błędy podczas tworzenia socketu // Connect to server. iresult = connect( ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen); if (iresult == SOCKET_ERROR) { closesocket(connectsocket); ConnectSocket = INVALID_SOCKET; } Użyta wcześniej funkcja getaddrinfo jest używana do określenia wartości w strukturze sockaddr() W przykładzie pierwszy adres IP zwrócony przez getaddrinfo służy do określenia zawartości struktury sockaddr, która następnie jest przekazywana do funkcji socket Informacje zawarte w strukturze sockaddr zawierają: adres IP serwera, z którym klient chce się połączyć numer portu serwera, z którym klient chce się połączyć (w tym przypadku port określony przy wywoływaniu funkcji getaddrinfo)

10 Łączenie z socketem serwera (2) Sprawdzenie czy nie wystąpiły błędy podczas tworzenia socketu // Should really try the next address returned by getaddrinfo if the connect call failed // But for this simple example we just free the resources // returned by getaddrinfo and print an error message freeaddrinfo(result); if (ConnectSocket == INVALID_SOCKET) { printf("unable to connect to server!\n"); WSACleanup(); return 1; } Jeśli funkcja connect nie wykona się poprawnie dla pierwszego z adresów zwróconych przez getaddrinfo, wtedy należy skorzystać z następnej struktury addrinfo z listy zwróconej przez getaddrinfo W tym przykładzie inne podejście po prostu zwolnienie zasobów i zakończenie programu komunikatem o błędzie

11 Wysyłanie i odbieranie danych (1) Po nawiązaniu połączenia z socketem serwera klient wysyła i odbiera dane za pomocą funkcji send i recv obydwie funkcje zwracają liczbę wysłanych (odebranych) bajtów lub kod błędu obydwie funkcje również korzystają z tych samych parametrów: aktywny socket, bufor znaków, liczba bajtów do wysłania lub odebrania, odpowiednie znaczniki #define DEFAULT_BUFLEN 512 int recvbuflen = DEFAULT_BUFLEN; char *sendbuf = "this is a test"; char recvbuf[default_buflen]; int iresult;

12 Wysyłanie i odbieranie danych (2) // Send an initial buffer iresult = send(connectsocket, sendbuf, (int) strlen(sendbuf), 0); if (iresult == SOCKET_ERROR) { printf("send failed: %d\n", WSAGetLastError()); closesocket(connectsocket); WSACleanup(); return 1; } printf("bytes Sent: %ld\n", iresult);

13 Wysyłanie i odbieranie danych (3) // shutdown the connection for sending since no more data will be sent // the client can still use the ConnectSocket for receiving data iresult = shutdown(connectsocket, SD_SEND); if (iresult == SOCKET_ERROR) { printf("shutdown failed: %d\n", WSAGetLastError()); closesocket(connectsocket); WSACleanup(); return 1; }

14 Wysyłanie i odbieranie danych (4) // Receive data until the server closes the connection do { iresult = recv(connectsocket, recvbuf, recvbuflen, 0); if (iresult > 0) printf("bytes received: %d\n", iresult); else if (iresult == 0) printf("connection closed\n"); else printf("recv failed: %d\n", WSAGetLastError()); } while (iresult > 0);

15 Rozłączanie klienta krok 1 Gdy klient zakończy wysyłanie danych, rozłącza się z serwerem // shutdown the send half of the connection since no more data will be sent iresult = shutdown(connectsocket, SD_SEND); if (iresult == SOCKET_ERROR) { printf("shutdown failed: %d\n", WSAGetLastError()); closesocket(connectsocket); WSACleanup(); return 1; } Funkcja shutdown z parametrem SD_SEND stosowana do zamknięcia strony wysyłającej Umożliwia to serwerowi zwolnienie wykorzystywanych w komunikacji zasobów, a klient może nadal otrzymywać dane przez ten socket

16 Rozłączanie klienta krok 2 Gdy klient zakończy odbieranie danych zamyka socket // cleanup closesocket(connectsocket); WSACleanup(); return 0; Funkcja closesocket stosowana do zamknięcia socketu Po zakończeniu korzystania przez aplikację klienta z biblioteki WS2_32.dll wywoływana jest funkcja WSACleanup zamykająca bibliotekę i zwalniająca używane zasoby.

17 Tworzenie socketu dla serwera krok 1 Zadeklarować obiekt addrinfo zawierający strukturę sockaddr #define DEFAULT_PORT "27015" struct addrinfo *result = NULL, *ptr = NULL, hints; ZeroMemory(&hints, sizeof (hints)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; hints.ai_flags = AI_PASSIVE; AF_INET adres IPv4 STOCK_STREAM socket strumieniowy IPPROTO_TCP protokół TCP AI_PASSIVE znacznik oznaczający, że ma być użyta struktura adresu socketu zwrócona przez funkcję bind (parametr INADDR_ANY lub IN6ADDR_ANY_INIT) numer portu, do którego powinien się łączyć klient

18 Tworzenie socketu dla serwera krok 2 Wywołać funkcję getaddrinfo przy użyciu struktury addrinfo // Resolve the local address and port to be used by the server iresult = getaddrinfo(null, DEFAULT_PORT, &hints, &result); if (iresult!= 0) { printf("getaddrinfo failed: %d\n", iresult); WSACleanup(); return 1; } Funkcja getaddrinfo zwraca wartość, która jest sprawdzana pod kątem wystąpienia błędów. WSACleanup kończy użycie WS2_32.dll

19 Tworzenie socketu dla serwera krok 3 Utworzyć obiekt ListenSocket typu SOCKET SOCKET ListenSocket = INVALID_SOCKET;

20 Tworzenie socketu dla klienta krok 4 Wywołać funkcję socket i przypisać zwracaną przez nią wartość do zmiennej ListenSocket // Create a SOCKET for the server to listen for client connections ListenSocket = socket(result->ai_family, result->ai_socktype, result->ai_protocol); Używany jest pierwszy adres IP zwrócony przez funkcję getaddrinfo, który odpowiada parametrom określonym w strukturze hints (typ socketu SOCK_STREAM, typ protokołu IPROTO_TCP, adres IPv4 AF_INET) Jeśli klient ma się kontaktować z serwerem wyłącznie za pośrednictwem adresu IP w wersji to zamiast AF_INET należy użyć AF_INET6, te dwa typy socketów muszą być osobno obsługiwane przez aplikację. Od wersji Vista istnieje możliwość stworzenia pojedynczego socketu IPv6, który może pracować w trybie dual-stack i nasłuchiwać jednocześnie na dwóch wersjach adresu IPv4 i IPv6

21 Tworzenie socketu dla klienta krok 5 Sprawdzenie, czy podczas tworzenia socketu nie wystąpiły błędy if (ListenSocket == INVALID_SOCKET) { printf("error at socket(): %ld\n", WSAGetLastError()); freeaddrinfo(result); WSACleanup(); return 1; } Jeśli wystąpił błąd to wyświetlany jest odpowiedni komunikat Zasoby są zwracane WSACleanup kończy użycie WS2_32.dll

22 Wiązanie z socketem Aby serwer mógł akceptować połączenia od klienta, to musi być związany z adresem sieciowycm // Setup the TCP listening socket iresult = bind( ListenSocket, result->ai_addr, (int)result->ai_addrlen); if (iresult == SOCKET_ERROR) { printf("bind failed: %d\n", WSAGetLastError()); freeaddrinfo(result); closesocket(listensocket); WSACleanup(); return 1; } Struktura sockaddr przechowuje informacje o adresie IP, jego typie i numerze portu Funkcja bind uruchamiana jest dla utworzonego socketu (parametry socket i sockaddr) W przypadku wystąpienia błędu, jego obsługa polega na wygenerowaniu napisu informującego o błędzie, zwróceniu zasobów i zakończeniu użycia WS2_32.dll

23 Nasłuchiwanie na sockecie Po związaniu socketu z adresem IP i portem, serwer przechodzi w stan nasłuchiwania (oczekiwania na połączenia z klientem) if ( listen( ListenSocket, SOMAXCONN ) == SOCKET_ERROR ) { printf( "Error at bind(): %ld\n", WSAGetLastError() ); closesocket(listensocket); WSACleanup(); return 1; } Funkcja listen wywoływana jest z dwoma parametrami utworzonym socketem i wartością określającą maksymalną długość kolejki połączeń oczekujących na zaakceptowanie (w tym przykładzie stała SOMAXCONN) Stała SOMAXCONN oznacza maksymalną rozsądnie możliwą liczbę oczekujących połączeń W przypadku wystąpienia błędu, jego obsługa polega na wygenerowaniu napisu zamknięciu socketu i zakończeniu użycia WS2_32.dll

24 Akceptowanie połączeń krok 1 Gdy socket jest w trybie nasłuchiwania, program musi obsługiwać żądania połączenia przychodzące na ten socket SOCKET ClientSocket; Utworzenie temporalnego obiektu typu SOCKET, służącego do obsługi połączeń przychodzących.

25 Akceptowanie połączeń krok 2 Akceptowanie połączenia ClientSocket = INVALID_SOCKET; // Accept a client socket ClientSocket = accept(listensocket, NULL, NULL); if (ClientSocket == INVALID_SOCKET) { printf("accept failed: %d\n", WSAGetLastError()); closesocket(listensocket); WSACleanup(); return 1; } Zazwyczaj aplikacja serwera nasłuchuje cały czas, aby przyjmować kolejne połączenia od klientów (kolejne połączenia są obsługiwane przez odrębne wątki) Po wystąpieniu próby nawiązania połączenia, aplikacja serwera akceptuje połączenie jedną z funkcji accept, AcceptEx lub WSAAccept i przekazuje sterowanie do innego wątku, który zajmuje się obsługą tego zgłoszenia W typ prostym przypadku serwer nasłuchuje i akceptuje wyłącznie jedno połączenie (nie ma obsługi wielu wątków)

26 Akceptowanie połączeń krok 3 Zaakceptowanie połączenia klienta przez serwer powinno spowodować przekazanie zaakceptowanego socketu klienta do wątku roboczego lub do odpowiedniego portu we/wy, a serwer powinien przejść do akceptowania kolejnych połączeń W tym prostym przykładzie serwer po zaakceptowaniu połączenia przechodzi do obsługi tego połączenia Istnieje wiele innych technik programistycznych, które mogą być użyte do nasłuchiwania i akceptowania połączeń przychodzących. Są to m.in. funkcje select lub WSAPoll. Przykłady znajdują się w MS Windows Software Development Kit (SDK)

27 Akceptowanie połączeń uwagi Główna różnica pomiędzy systemem Windows a systemami unixowymi w zastosowaniu socketów występuje w momencie zaakceptowania połączenia W systemach unixowych proces serwera wywołuje funkcję fork by utworzyć proces potomny do obsługi połączenia z klientem otrzymując od serwera socket Systemy windowsowe nie obsługują funkcji fork, używając w zamian techniki wielowątkowości

28 Odbieranie i wysyłanie danych (1) Po nawiązaniu połączenia z socketem klienta serwer odbiera i wysyła dane za pomocą funkcji recv i send obydwie funkcje zwracają liczbę wysłanych (odebranych) bajtów lub kod błędu obydwie funkcje również korzystają z tych samych parametrów: aktywny socket, bufor znaków, liczba bajtów do wysłania lub odebrania, odpowiednie znaczniki #define DEFAULT_BUFLEN 512 char recvbuf[default_buflen]; int iresult, isendresult; int recvbuflen = DEFAULT_BUFLEN; // Receive until the peer shuts down the connection do { } while (iresult > 0);

29 Odbieranie i wysyłanie danych (2) do { iresult = recv(clientsocket, recvbuf, recvbuflen, 0); if (iresult > 0) { printf("bytes received: %d\n", iresult); } // Echo the buffer back to the sender isendresult = send(clientsocket, recvbuf, iresult, 0); if (isendresult == SOCKET_ERROR) { printf("send failed: %d\n", WSAGetLastError()); closesocket(clientsocket); WSACleanup(); return 1; } printf("bytes sent: %d\n", isendresult);

30 Odbieranie i wysyłanie danych (3) else if (iresult == 0) printf("connection closing...\n"); else { printf("recv failed: %d\n", WSAGetLastError()); closesocket(clientsocket); WSACleanup(); return 1; } } while (iresult > 0);

31 Rozłączanie serwera krok 1 Gdy serwer zakończy odbieranie danych od klienta i wysyłanie informacji zwrotnych, rozłącza się z klientem // shutdown the send half of the connection since no more data will be sent iresult = shutdown(clientsocket, SD_SEND); if (iresult == SOCKET_ERROR) { printf("shutdown failed: %d\n", WSAGetLastError()); closesocket(clientsocket); WSACleanup(); return 1; } Funkcja shutdown z parametrem SD_SEND stosowana do zamknięcia strony wysyłającej Umożliwia to klientowi zwolnienie wykorzystywanych w komunikacji zasobów, a serwer może nadal otrzymywać dane przez ten socket

32 Rozłączanie serwera krok 2 Gdy klient zakończy odbieranie danych zamykany jest związany z nim socket // cleanup closesocket(clientsocket); WSACleanup(); return 0; Funkcja closesocket stosowana do zamknięcia socketu Po zakończeniu korzystania przez aplikację z biblioteki WS2_32.dll wywoływana jest funkcja WSACleanup zamykająca bibliotekę i zwalniająca używane zasoby.

33 Przykłady zaawansowane Dostępne w Windows SDK W przypadku Windows 7 zainstalowane w następującym katalogu: C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\NetDs\winsock Pięć katalogów: accept simple WSAPoll overlap iocp

34 Przykłady zaawansowane accept pokazuje zastosowanie funkcji select do obsługi wielu połączeń lub funkcji WSAAsyncSelect do akceptacji asynchronicznej simple trzy podstawowe programy ilustrujące korzystanie z wielu wątków przez serwer simples prosty serwer TCP/UDP simples_ioctl serwer wyłacznie TCP korzystający z funkcji select do obsługi wielu klientów simplec klient TCP/UDP WSAPoll prosty program pokazujący użycie funkcji WSAPoll overlap przykładowy serwer korzystający z nadpisywania portu I/O do obsługi wielu połączeń w sposób asynchroniczny z poziomu aplikacji jednowątkowej(acceptex) iocp trzy programy korzystające z funkcji WSAAccept (iocpserver), funkcji AcceptX (iocpserverx) i wielowątkowy klient (iocpclient)

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

TCP - receive buffer (queue), send buffer (queue)

TCP - receive buffer (queue), send buffer (queue) BSD sockets c.d. TCP - receive buffer (queue), send buffer (queue) Z każdym gniazdem sieciowym są skojarzone: Bufor do odbierania danych (ang. receive buffer) Przychodzące dane są umieszczane w buforze

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

Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6

Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6 Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6 Celem ćwiczenia jest zdobycie umiejętności programowania komunikacji unicastowej za pomocą protokołu IPv6

Bardziej szczegółowo

Programowanie TCP/IP

Programowanie TCP/IP Podstawy komputerowych systemów sterowania Programowanie TCP/IP dr inż. Krzysztof Kołek Materiały wyłącznie dla potrzeb wykładu Podstawy komputerowych systemów sterowania IV rok RA wydział EAIiEB AGH.

Bardziej szczegółowo

Programowanie Sieciowe 1

Programowanie Sieciowe 1 Programowanie Sieciowe 1 dr inż. Tomasz Jaworski tjaworski@iis.p.lodz.pl http://tjaworski.iis.p.lodz.pl/ Klient UDP Kolejność wykonywania funkcji gniazdowych klienta UDP Protokół UDP jest bezpołączeniowy:

Bardziej szczegółowo

Iteracyjny serwer TCP i aplikacja UDP

Iteracyjny serwer TCP i aplikacja UDP Iteracyjny serwer TCP i aplikacja UDP Iteracyjny serwer TCP Funkcje wywoływane przez serwer TCP socket() - bind() - listen() - accept() - read() / write() - close() socket() Creates an endpoint for communication

Bardziej szczegółowo

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013 ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013 Paweł Kowalik Zespół Szkół im. ks. S. Staszica w Tarnobrzegu KOMUNIKACJA SIECIOWA MIĘDZY URZĄDZENIAMI Z WYKORZYSTANIEM PROTKOŁU

Bardziej szczegółowo

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1 Architektury systemów rozproszonych LABORATORIUM Ćwiczenie 1 Temat: Aplikacja klient-serwer - implementacja w środowisku QT Creator. Przykładowy projekt aplikacji typu klient - serwer został udostępniony

Bardziej szczegółowo

Architektura typu klient serwer: uproszczony klient POP3

Architektura typu klient serwer: uproszczony klient POP3 Architektura typu klient serwer: uproszczony klient POP3 Wydział Inżynierii Mechanicznej i Informatyki Instytut Informatyki Teoretycznej i Stosowanej dr inż. Łukasz Szustak Składniki systemu poczty e-mail

Bardziej szczegółowo

Podstawowe typy serwerów

Podstawowe typy serwerów Podstawowe typy serwerów 1. Algorytm serwera. 2. Cztery podstawowe typy serwerów. iteracyjne, współbieżne, połączeniowe, bezpołączeniowe. 3. Problem zakleszczenia serwera. 1 Algorytm serwera 1. Utworzenie

Bardziej szczegółowo

socket(int domain, int type, int protocol)

socket(int domain, int type, int protocol) Co identyfikuje adres IP a co port? IP identyfikuje hosta w sieci port identyfikuje typ procesu (np. 21 FTP, 25 SMTP, 49 LOGIN) gniazdo identyfikuje unikalny nr połączenia Czym różni się deskryptor gniazda

Bardziej szczegółowo

Programowanie przy użyciu gniazdek

Programowanie przy użyciu gniazdek Programowanie przy użyciu gniazdek Gniazdo (ang. socket) pojęcie abstrakcyjne reprezentujące dwukierunkowy punkt końcowy połączenia. Dwukierunkowość oznacza możliwość wysyłania i przyjmowania danych. Wykorzystywane

Bardziej szczegółowo

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

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

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

Interfejs programowy Windows Sockets 2. Aplikacja klient-serwer TCP Echo

Interfejs programowy Windows Sockets 2. Aplikacja klient-serwer TCP Echo Interfejs programowy Windows Sockets 2. Aplikacja klient-serwer TCP Echo Zagadnienia Omówienie biblioteki Winsock. Specyfikacja klienta tcpecho. Specyfikacja serwera tcpecho. dr Zbigniew Lipiński Instytut

Bardziej szczegółowo

3. Identyfikacja. SKŁADNIA #include <sys/socket.h> int getpeername(int socket, struct sockaddr *addr, int *addrlen);

3. Identyfikacja. SKŁADNIA #include <sys/socket.h> int getpeername(int socket, struct sockaddr *addr, int *addrlen); 3.1. Określanie adresu połączonego hosta 3. #include int getpeername(int socket, struct sockaddr *addr, int *addrlen); Funkcja getpeername dostarcza adresu drugiej strony połączenia. Parametry:

Bardziej szczegółowo

Gniazda UDP. Bartłomiej Świercz. Łódź, 3 kwietnia Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda UDP

Gniazda UDP. Bartłomiej Świercz. Łódź, 3 kwietnia Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda UDP Gniazda UDP Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 3 kwietnia 2006 Wstęp ZewzględunaróżnicewprotokołachTCPiUDPsposób korzystania z gniazd UDP różni sie znacznie od

Bardziej szczegółowo

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty MeetingHelper Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania Instrukcja obsługi dla programisty W tej części został zawarty opis uruchamiania projektu programistycznego,

Bardziej szczegółowo

Sockety TCP/IP - podstawy. Sieci Komputerowe II Wyk ład 2

Sockety TCP/IP - podstawy. Sieci Komputerowe II Wyk ład 2 Sockety TCP/IP - podstawy Sieci Komputerowe II Wyk ład 2 Plan Klient IPv4 Serwer IPv4 Pierwszy program Aplikacja w architekturze klient-serwer Realizacja protokołu echo Zasada działania: klient łączy się

Bardziej szczegółowo

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1 Komunikacja międzyprocesowa Krzysztof Banaś Systemy rozproszone 1 Komunikacja międzyprocesowa Dla funkcjonowania systemów rozproszonych konieczna jest sprawna komunikacja pomiędzy odległymi procesami Podstawowym

Bardziej szczegółowo

Krótkie wprowadzenie do korzystania z OpenSSL

Krótkie wprowadzenie do korzystania z OpenSSL Krótkie wprowadzenie do korzystania z OpenSSL Literatura: http://www.openssl.org E. Rescola, "An introduction to OpenSSL Programming (PartI)" (http://www.linuxjournal.com/article/4822) "An introduction

Bardziej szczegółowo

Gniazda BSD implementacja w C#

Gniazda BSD implementacja w C# BSD implementacja w C# Implementacja w C#: Przestrzeń nazw: System.Net.Sockets Klasa: public class Socket : IDisposable Implementacja w C#: Konstruktor: public Socket( AddressFamily addressfamily, SocketType

Bardziej szczegółowo

Gniazda surowe. Bartłomiej Świercz. Łódź,9maja2006. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda surowe

Gniazda surowe. Bartłomiej Świercz. Łódź,9maja2006. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda surowe Gniazda surowe Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź,9maja2006 Wstęp Gniazda surowe posiadają pewne właściwości, których brakuje gniazdom TCP i UDP: Gniazda surowe

Bardziej szczegółowo

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski Transport część 2: protokół TCP Sieci komputerowe Wykład 6 Marcin Bieńkowski Protokoły w Internecie warstwa aplikacji HTTP SMTP DNS NTP warstwa transportowa TCP UDP warstwa sieciowa IP warstwa łącza danych

Bardziej szczegółowo

Programowanie sieciowe

Programowanie sieciowe Programowanie sieciowe dr Tomasz Tyrakowski Dyż ury: wtorki 12:00 13:00 czwartki 14:00 15:00 pokój B4-5 e-mail: ttomek@amu.edu.pl materiały: http://www.amu.edu.pl/~ttomek 1 Wymagania podstawowa znajomość

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

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne Zdalne wywołania procedur Jarosław Kuchta Programowanie Współbieżne Podstawy RPC Remote Procedure Call Wywołanie procedur jednego procesu z innego procesu. Proces wywoływany serwer Proces wywołujący -

Bardziej szczegółowo

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ] JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA Marcin Lewandowski [ mlew@ippt.gov.pl ] PROGRAMOWANIE SIECIOWE 2 TCP/IP = UDP + TCP TCP/IP składa się z dwóch podstawowych protokołów: TCP i UDP. TCP jest

Bardziej szczegółowo

Gniazda. S. Samolej: Gniazda 1

Gniazda. S. Samolej: Gniazda 1 Gniazda dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/ oraz na materiałach

Bardziej szczegółowo

Komunikator internetowy w C#

Komunikator internetowy w C# PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej

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

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenia 2 IBM DB2 Data Studio Ćwiczenia 2 IBM DB2 Data Studio Temat: Aplikacje w Data Studio 1. Projekty Tworzenie procedur, UDF, trygerów zaczynamy od utworzenia projektu File -> New -> Project wybieramy Data Development Project.

Bardziej szczegółowo

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski Transport część 2: protokół TCP Sieci komputerowe Wykład 6 Marcin Bieńkowski Protokoły w Internecie warstwa aplikacji HTTP warstwa transportowa SMTP TCP warstwa sieciowa warstwa łącza danych warstwa fizyczna

Bardziej szczegółowo

Protokół ARP. dr Zbigniew Lipiński. Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl

Protokół ARP. dr Zbigniew Lipiński. Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Protokół ARP Aplikacja printarp dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Address Resolution Protocol ARP, (ang.) Address Resolution

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino IPC native Mariusz Rudnicki 2016 Wstęp QNX Neutrino wspiera różnorodne mechanizmy komunikacji IPC: rodzima komunikacja QNX Neutrino

Bardziej szczegółowo

Literatura uzupełniająca: W. Richard Stevens, Programowanie zastosowań sieciowych w systemie Unix WNT 1998

Literatura uzupełniająca: W. Richard Stevens, Programowanie zastosowań sieciowych w systemie Unix WNT 1998 Gniazda BSD Literatura uzupełniająca: W. Richard Stevens, Programowanie zastosowań sieciowych w systemie Unix WNT 1998 socket() Użycie gniazd w transmisji połączeniowej bind() listen() socket() accept()

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

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

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

Komunikacja przez sieć z wykorzystaniem biblioteki WINSOCK. dr inż. Piotr Kaczmarek Instytut Automatyki i Inżynierii Informatycznej

Komunikacja przez sieć z wykorzystaniem biblioteki WINSOCK. dr inż. Piotr Kaczmarek Instytut Automatyki i Inżynierii Informatycznej Komunikacja przez sieć z wykorzystaniem biblioteki WINSOCK dr inż. Piotr Kaczmarek Instytut Automatyki i Inżynierii Informatycznej LAN (Local Area Network) Warstwa fizyczna Podstawowe topologie: -Gwiazda

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 4

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 4 Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium przyrządów wirtualnych Ćwiczenie 4 Komunikacja przyrządu wirtualnego z serwerem przy pomocy interfejsu DataSocket 1. Wstęp teoretyczny

Bardziej szczegółowo

FTP File Transfer Protocol

FTP File Transfer Protocol FTP File Transfer Protocol Protokół pozwalający na transfer plików pomiędzy hostami w sieci TCP/IP. Protokół warstwy aplikacyjnej. Opiera się w warstwie transportowej na sesji TCP zapewnia kontrolę poprawności

Bardziej szczegółowo

Schemat dla UDP. = możliwe zablokowanie aplikacji KLIENT SERWER. s=socket(...) bind(s,...) recvfrom(s,...) sendto(s,...) recvfrom(s,...

Schemat dla UDP. = możliwe zablokowanie aplikacji KLIENT SERWER. s=socket(...) bind(s,...) recvfrom(s,...) sendto(s,...) recvfrom(s,... Schemat dla UDP = możliwe zablokowanie aplikacji KLIENT s=socket(...) [bind(s,...)] sendto(s,...) recvfrom(s,...) sendto(s,...) close(s) SERWER s=socket(...) bind(s,...) recvfrom(s,...) sendto(s,...) recvfrom(s,...)

Bardziej szczegółowo

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

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

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP Sieci komputerowe Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP Zadania warstwy transportu Zapewnienie niezawodności Dostarczanie danych do odpowiedniej aplikacji w warstwie aplikacji (multipleksacja)

Bardziej szczegółowo

Laboratorium 3.4.2: Zarządzanie serwerem WWW

Laboratorium 3.4.2: Zarządzanie serwerem WWW Laboratorium 3.4.2: Zarządzanie serwerem WWW Topologia sieci Tabela adresacji Urządzenie Interfejs Adres IP Maska podsieci Domyślna brama R1-ISP S0/0/0 10.10.10.6 255.255.255.252 Nie dotyczy Fa0/0 192.168.254.253

Bardziej szczegółowo

Gniazda BSD. Procesy w środowisku sieciowym. Gniazda podstawowe funkcje dla serwera. Gniazda podstawowe funkcje dla klienta

Gniazda BSD. Procesy w środowisku sieciowym. Gniazda podstawowe funkcje dla serwera. Gniazda podstawowe funkcje dla klienta Procesy w środowisku sieciowym! Obsługa! Protokół! Numery portów i ogólnie znane adresy! Połączenie (asocjacja) i gniazdo (półasocjacja)! Model klient-serwer " Serwer - bierne otwarcie kanału " Klient

Bardziej szczegółowo

Tryb bezpołączeniowy (datagramowy)

Tryb bezpołączeniowy (datagramowy) Tutaj trochę szerzej opisałam mechanizm gniazdek. 3 tematy wymienione poniŝej przeplatają się ze sobą więc wrzuciłam je do jednego worka i przedstawiłam w takim porządku, który wydawał mi się najbardziej

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie dziesiąte Temat: Gniazda BSD protokoły internetowe Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Usługi sieciowe w

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

Instrukcja instalacji Control Expert 3.0

Instrukcja instalacji Control Expert 3.0 Instrukcja instalacji Control Expert 3.0 Program Control Expert 3.0 jest to program służący do zarządzania urządzeniami kontroli dostępu. Dedykowany jest dla kontrolerów GRx02 i GRx06 oraz rozwiązaniom

Bardziej szczegółowo

Dokumentacja smsapi wersja 1.4

Dokumentacja smsapi wersja 1.4 Dokumentacja smsapi wersja 1.4 1. Wprowadzenie Platforma smsapi została skierowana do użytkowników chcących rozbudować swoje aplikacje o system wysyłania smsów. Aplikacja ta w prosty sposób umożliwia integrację

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

Tomasz Greszata - Koszalin

Tomasz Greszata - Koszalin T: Usługi serwerowe w systemie Windows - telnet. Zadanie1: Sprawdź informacje w serwisie Wikipedii na temat usługi telnet. Telnet standard protokołu komunikacyjnego używanego w sieciach komputerowych do

Bardziej szczegółowo

Serwer współbieżny połączeniowy

Serwer współbieżny połączeniowy Serwery współbieżne 1. Serwery współbieżne serwery połączeniowe, usuwanie zakończonych procesów, serwery bezpołączeniowe, 2. Jednoprocesowe serwery współbieżne. koncepcja i implementacja. 1 Serwer współbieżny

Bardziej szczegółowo

Zadanie 2: transakcyjny protokół SKJ (2015)

Zadanie 2: transakcyjny protokół SKJ (2015) Zadanie 2: transakcyjny protokół SKJ (2015) 1 Wstęp Zadanie polega na zaprojektowaniu niezawodnego protokołu transakcyjnego bazującego na protokole UDP. Protokół ten ma być realizowany przez klasy implementujące

Bardziej szczegółowo

Specyfikacja API Runtime BAS 3.0

Specyfikacja API Runtime BAS 3.0 Specyfikacja API Runtime BAS 3.0 Spis treści Wstęp... 4 Informacja o dokumencie... 4 Opis usługi... 4 Typowy sposób wywołania usługi... 5 Udostępniane funkcje... 6 Funkcje liczące... 6 Execute... 6 SafeExecute...

Bardziej szczegółowo

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http. T: Konfiguracja usługi HTTP w systemie Windows. Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http. HTTP (ang. Hypertext Transfer Protocol) protokół transferu plików

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

1. Tworzenie nowego projektu.

1. Tworzenie nowego projektu. Załącznik do Instrukcji 1. Tworzenie nowego projektu. Wybieramy opcję z menu głównego New->QNX C Project. Wprowadzamy nazwę przechodzimy do następnego kroku NEXT. Wybieramy platformę docelową oraz warianty

Bardziej szczegółowo

Internet Control Message Protocol Aplikacja ping

Internet Control Message Protocol Aplikacja ping Internet Control Message Protocol Aplikacja ping Zagadnienia: Protokół ICMP. Specyfikacja projektu ping. Specyfikacja struktur i funkcji programu. Struktura programu. dr Zbigniew Lipiński Instytut Matematyki

Bardziej szczegółowo

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq) Program my_ping: wysłanie komunikatu ICMP z żądaniem echa Struktura icmp (plik netinet/ip_icmp.h) 0 7 8 15 16 31 TYP (icmp_type) KOD (icmp_code) IDENTYFIKATOR (icmp_id) SUMA KONTROLNA (icmp_cksum) NUMER

Bardziej szczegółowo

Przykłady interfejsu TCP i UDP w Javie

Przykłady interfejsu TCP i UDP w Javie Przykłady interfejsu TCP i UDP w Javie W Javie interfejsy TCP i UDP znajdują się w pakiecie java.net http://docs.oracle.com/javase/6/docs/api/java/net/packagesummary.html 1 Przykład interfejsu UDP Protokół

Bardziej szczegółowo

Dokumentacja techniczna API systemu SimPay.pl

Dokumentacja techniczna API systemu SimPay.pl Wprowadzenie Dokumentacja techniczna API systemu SimPay.pl Wersja 1.0 z dnia 24.03.2015 r. API serwisu SimPay.pl opiera się o danych wysyłanych i zwracanych w formie JSON. W przypadku napotkania jakiegokolwiek

Bardziej szczegółowo

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły

Bardziej szczegółowo

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Co to jest NODE.JS? Nowoczesne środowisko programistyczne Node.js Co to jest NODE.JS? Nowoczesne środowisko programistyczne Środowisko programistyczne w sensie zestawu gotowych klas i metod których można używać do przygotowania własnych skalowalnych i wydajnych

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2017 APLIKACJE SIECIOWE Definicja Architektura aplikacji sieciowych Programowanie

Bardziej szczegółowo

Projektowanie oprogramowania systemów KOMUNIKACJA SIECIOWA I SYSTEMY RPC

Projektowanie oprogramowania systemów KOMUNIKACJA SIECIOWA I SYSTEMY RPC Projektowanie oprogramowania systemów KOMUNIKACJA SIECIOWA I SYSTEMY RPC plan programowanie sieciowe BSD/POSIX Socket API systemy RPC interfejsy obiektowe CORBA DCOM RMI WebServices WSDL/SOAP XML-RPC REST

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Informacje które należy zebrać przed rozpoczęciem instalacji RelayFax.

Informacje które należy zebrać przed rozpoczęciem instalacji RelayFax. Informacje które należy zebrać przed rozpoczęciem instalacji RelayFax. Program instalacyjny RelayFax będzie prosił o podanie kilku informacji w trakcie procesu instalacji, które są wymagane do poprawnego

Bardziej szczegółowo

Qt in Education. Sieć I drukowanie

Qt in Education. Sieć I drukowanie Qt in Education Sieć I drukowanie. 1 Tłumaczenie i adaptacja: dr inż. Piotr Kaczmarka na podstawie kursu na podstawie materiału Diga Plc. Materiały służą do prowadzenia zajęć z informatyki dla studentów

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

Programowanie rozproszone w języku Java

Programowanie rozproszone w języku Java Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz

Bardziej szczegółowo

Kolejkowanie wiadomości Standard MQ (JMS)

Kolejkowanie wiadomości Standard MQ (JMS) Kolejkowanie wiadomości Standard MQ (JMS) Kolejkowanie wiadomości Standard wymiany informacji wiadomości (ang. message) między procesami (mogą być rozproszone) Przykładowe rozwiązania: - RabbitMQ - ActiveMQ

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Instalacja NOD32 Remote Administrator

Instalacja NOD32 Remote Administrator Instalacja NOD32 Remote Administrator Program do zdalnego zarządzania stacjami roboczymi, na których zainstalowany jest program NOD32, składa się z dwóch modułów. Pierwszy z nich Remote Administrator Server

Bardziej szczegółowo

Gniazda BSD. komunikacja bezpołączeniowa

Gniazda BSD. komunikacja bezpołączeniowa Gniazda BSD komunikacja bezpołączeniowa Użycie gniazd w transmisji bezpołączeniowej socket() socket() bind() bind() STOP! recv() żądanie send() send() odpowiedź recv() STOP! recvfrom() #include

Bardziej szczegółowo

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl wersja.2.9 data 2014-11-21 Opis usług: P24 KOD P24 KLUCZ P24 WAPA SEND SMS Strona 1 z 8 P24 KOD Przebieg transakcji Operacje po stronie Sprzedawcy

Bardziej szczegółowo

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5 Politechnika Wrocławska Wydział Podstawowych Problemów Techniki Technologie sieciowe Sprawozdanie z labolatorium Lista 5 Autor: Piotr Kosytorz IIrokInf. indeks: 166174 Prowadzący: dr inż. Łukasz Krzywiecki

Bardziej szczegółowo

Wskaźniki w C. Anna Gogolińska

Wskaźniki w C. Anna Gogolińska Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik

Bardziej szczegółowo

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Moduł Ethernetowy. instrukcja obsługi. Spis treści Moduł Ethernetowy instrukcja obsługi Spis treści 1. Podstawowe informacje...2 2. Konfiguracja modułu...4 3. Podłączenie do sieci RS-485 i LAN/WAN...9 4. Przywracanie ustawień fabrycznych...11 www.el-piast.com

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

Instrukcja instalacji aplikacji i konfiguracji wersji sieciowej. KomKOD

Instrukcja instalacji aplikacji i konfiguracji wersji sieciowej. KomKOD Instrukcja instalacji aplikacji i konfiguracji wersji sieciowej KomKOD Firma KOMLOGO dochowała wszelakich starań, aby aplikacja działała poprawnie, jednak nie odpowiada za utratę zgromadzonych danych.

Bardziej szczegółowo

NS-2. Krzysztof Rusek. 26 kwietnia 2010

NS-2. Krzysztof Rusek. 26 kwietnia 2010 NS-2 Krzysztof Rusek 26 kwietnia 2010 1 Opis ćwiczenia Symulator ns-2 jest potężnym narzędziem, szeroko stosowanym w telekomunikacji. Ćwiczenie ma na cele przedstawić podstawy symulatora oraz symulacji

Bardziej szczegółowo

Specyfikacja techniczna. mprofi Interfejs API

Specyfikacja techniczna. mprofi Interfejs API Warszawa 09.04.2015. Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 1 Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 WERSJA DATA STATUTS AUTOR 1.0.0 10.03.2015 UTWORZENIE DOKUMENTU

Bardziej szczegółowo

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia Język ANSI C część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia najbardziej podstawowe operacje na wskaźnikach int x = 1, y = 2, Tab[10]; int *ip; // czy

Bardziej szczegółowo

Tablice, funkcje - wprowadzenie

Tablice, funkcje - wprowadzenie Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład

Bardziej szczegółowo

Statystyka protokołów i połączeń sieciowych.

Statystyka protokołów i połączeń sieciowych. Statystyka protokołów i połączeń sieciowych. Aplikacja netstat. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Statystyka połączeń sieciowych.

Bardziej szczegółowo

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC Zdalne wywoływanie procedur Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proces

Bardziej szczegółowo

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC Zdalne wywoływanie procedur Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status)... int zabij_proces (int

Bardziej szczegółowo

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO UWAGA!!! Wskazówki dotyczą wybranych klientów pocztowych Zespół Systemów Sieciowych Spis treści 1. Konfiguracja klienta pocztowego Outlook Express 3 2. Konfiguracja

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

Instrukcja instalacji oprogramowania dla środowiska Windows

Instrukcja instalacji oprogramowania dla środowiska Windows Instrukcja instalacji oprogramowania dla środowiska Windows Kurs.NET od podstaw Przygotuj się jeszcze przed zajęciami! Specyfikacja komputera.net od postaw minimum 8 GB RAM, rekomendowany procesor minimum

Bardziej szczegółowo

Biblioteka standardowa - operacje wejścia/wyjścia

Biblioteka standardowa - operacje wejścia/wyjścia Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline

Bardziej szczegółowo