Sockety TCP/IP - podstawy. Sieci Komputerowe II Wyk ład 2
|
|
- Filip Kwiecień
- 7 lat temu
- Przeglądów:
Transkrypt
1 Sockety TCP/IP - podstawy Sieci Komputerowe II Wyk ład 2
2 Plan Klient IPv4 Serwer IPv4
3 Pierwszy program Aplikacja w architekturze klient-serwer Realizacja protokołu echo Zasada działania: klient łączy się z serwerem i wysyła na serwer pewne dane w odpowiedzi serwer wysyła z powrotem do klienta to co od niego otrzymał i się rozłącza Dane wysyłane do serwera są argumentem (łańcuchem znaków) wywołania klienta podawanym w linii komend Zastosowania cele testowe i diagnostyczne
4 Klient TCP IPv4 Zadanie zainicjowanie komunikacji z biernie oczekującym serwerem Typowy schemat komunikacji klienta: utworzenie socketu TCP socket() nawiązanie połączenia z serwerem connect() komunikacja z serwerem send(), recv() zamknięcie połączenia close()
5 Implementacja: Komunikaty o błędach #include <stdio.h> #include <stdlib.h> void DieWithUserMessage(const char *msg, const char *detail) { fputs(msg, stderr); fputs(": ", stderr); fputs(detail, stderr); fputc('\n', stderr); exit(1); } void DieWithSystemMessage(const char *msg) { perror(msg); exit(1); } Dwa polecenia obsługi błędów obydwa wysyłają na strumień stderr komunikat użytkownika msg, po którym następuje szczegółowy opis błędu na koniec wykonywana jest funkcja exit() powodująca zakończenie programu różnica między tymi poleceniami polega na źródle opisu szczegółowego, w pierwszym przypadku pochodzi on od twórcy programu, w drugim z systemu w oparciu o wartość zmiennej systemowej errno
6 Implementacja: echo klient (1) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include "Practical.h" // plik nagłówkowy dla komunikatów o błędach Ustawienie plików include: należy sprawdzić w dokumentacji jakie pliki include należy uwzględnić dla funkcji socketów oraz struktur danych zamiast definiować osobny plik z komunikatami o błędach można te dwie funkcje dołączyć do programu
7 Implementacja: echo klient (2) int main(int argc, char *argv[]) { if (argc < 3 argc > 4) // Test for correct number of arguments DieWithUserMessage("Parameter(s)", "<Server Address> <Echo Word> [<Server Port>]"); char *servip = argv[1]; // First arg: server IP address (dotted quad) char *echostring = argv[2]; // Second arg: string to echo // Third arg (optional): server port (numeric). 7 is well-known echo port in_port_t servport = (argc == 4)? atoi(argv[3]) : 7; Parsing i sprawdzenie logiczności parametrów: pierwszy parametr adres IPv4 serwera drugi parametr łańcuch znakowy wysyłany na echo trzeci parametr (opcjonalny) numer portu serwera (domyślnie 7 standardowy port dla usługi echo)
8 Implementacja: echo klient (3) // Create a reliable, stream socket using TCP int sock = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); if (sock < 0) DieWithSystemMessage("socket() failed"); Tworzenie socketu TCP: przy użyciu funkcji socket() parametry: adres IPv4 (AF_INET), protokół strumieniowy (SOCK_STREAM), TCP (IPPROTO_TCP) funkcja socket() zwraca deskryptor numeryczny, jeśli tworzenie zakończyło się sukcesem, lub wartość -1 w przeciwnym przypadku i wówczas pojawia się komunikat o błędzie użytkownika i następuje wyjście z programu
9 Implementacja: echo klient (4) // Construct the server address structure struct sockaddr_in servaddr; // Server address memset(&servaddr, 0, sizeof(servaddr)); // Zero out structure Przygotowanie struktury sockaddr_in przechowującej adres i port serwera Funkcja memset() używana w celu zapewnienia, że wszystkie niepodane wprost wartości składowych struktury są równe 0
10 Implementacja: echo klient (5) servaddr.sin_family = AF_INET; // IPv4 address family // Convert address int rtnval = inet_pton(af_inet, servip, &servaddr.sin_addr.s_addr); if (rtnval == 0) DieWithUserMessage("inet_pton() failed", "invalid address string"); else if (rtnval < 0) DieWithSystemMessage("inet_pton() failed"); servaddr.sin_port = htons(servport); // Server port Wypełnienie struktury sockaddr_in: należy ustawić następujące wartości: rodzina adresów (AF_INET), adres IP, numer portu funkcja inet_pton() zamienia adres IP z postaci kropkowej na postać liczby 32 bitowej funkcja htons() host to network short zapewnia, że binarna wartość reprezentująca numer portu jest sformatowana w postaci wymaganej przez API
11 Implementacja: echo klient (6) // Establish the connection to the echo server if (connect(sock, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0) DieWithSystemMessage("connect() failed"); Łączenie: funkcja connect() ustanawia połączenie między tworzonym socketem, a tym określonym przez adres i numer portu przekazanym w strukturze sockaddr_in konieczne jest rzutowanie struktury sockaddr_in (dla adresu IPv4) na typ sockaddr (ogólny), dla którego należy podać aktualny rozmiar struktury danych
12 Implementacja: echo klient (7) size_t echostringlen = strlen(echostring); // Determine input length // Send the string to the server ssize_t numbytes = send(sock, echostring, echostringlen, 0); if (numbytes < 0) DieWithSystemMessage("send() failed"); else if (numbytes!= echostringlen) DieWithUserMessage("send()", "sent unexpected number of bytes"); Wysyłanie łańcucha znakowego do usługi echo serwera: na początku zapamiętywana jest długość wysyłanego łańcucha znaków do funkcji send() przekazywany jest wskaźnik do wysyłanego łańcucha znaków oraz jego długość funkcja send() zwraca liczbę wysłanych bajtów przy poprawnym wykonaniu i liczbę -1 w przeciwnym przypadku na koniec następuje obsługa błędów
13 Implementacja: echo klient (8) Odbiór odpowiedzi z usługi echo serwera: protokół TCP jest protokołem bajtowo-strumieniowym bajty wysłane jednym wywołaniem funkcji send() po jednej stronie połączenia niekoniecznie muszą być zwrócone podczas jednego wywołania funkcji recv() po drugiej stronie w konsekwencji dane muszą być odbierane w pętli najprawdopodobniej wszystkie wysłane bajty zostaną zwrócone naraz, ale nie ma na to gwarancji Podstawowa zasada pisania programów używających socketów brzmi: Nigdy nie możesz zakładać czegokolwiek o tym co sieć i program po drugiej stronie mają zamiar zrobić
14 Implementacja: echo klient (9) // Receive the same string back from the server unsigned int totalbytesrcvd = 0; // Count of total bytes received fputs("received: ", stdout); // Setup to print the echoed string while (totalbytesrcvd < echostringlen) { char buffer[bufsize]; // I/O buffer /* Receive up to the buffer size (minus 1 to leave space for a null terminator) bytes from the sender */ numbytes = recv(sock, buffer, BUFSIZE - 1, 0); if (numbytes < 0) DieWithSystemMessage("recv() failed"); else if (numbytes == 0) DieWithUserMessage("recv()", "connection closed prematurely"); totalbytesrcvd += numbytes; // Keep tally of total bytes buffer[numbytes] = '\0'; // Terminate the string! fputs(buffer, stdout); // Print the echo buffer } wyzerowanie licznika odebranych bajtów i przygotowanie standardowego wyjścia do wypisania odebranych bajtów odbieranie bajtów funkcją recv() trwa tak długo jak dostępne są dane, funkcja ta zwraca liczbę bajtów skopiowanych do bufora lub -1 w przypadku błędu, a 0 oznacza, że aplikacja po drugiej stronie zamknęła połączenie TCP (parametr oznaczający rozmiar rezerwuje jeden bajt na znak końca łańcucha wypisywanie zawartości bufora: po każdej partii odebranych bajtów na końcu łańcucha dodawany jest znak null, dzięki czemu można je wypisać na ekranie funkcją fputs(), zawartość odebranych bajtów nie jest sprawdzana pod względem zgodności z wysłanymi bajtami.
15 Implementacja: echo klient (10) fputc('\n', stdout); // Print a final linefeed } close(sock); exit(0); Zakończenie połączenia i programu: przejście do nowej linii funkcja close() informuje zdalny socket o zakończeniu komunikacji, a następnie powoduje dezalokację lokalnych zasobów socketu.
16 Program klienta uruchomienie % TCPEchoClient "Echo this!" Received: Echo this! Uwaga program do poprawnego działania wymaga drugiego programu, czyli serwera.
17 Serwer TCP IPv4 Zadania serwera: ustanowienie punktu końcowego dla komunikacji bierne oczekiwanie na połączenie klienta komunikacja serwera z klientem: odbieranie danych wysłanych przez klienta i odesłanie ich z powrotem do klienta czynności te są powtarzane aż do zamknięcia połączenia przez klienta, co oznacza koniec komunikacji
18 Podstawowe kroki dla serwera TCP 1. Utworzenie socketu TCP socket() 2. Przydzielenie socketowi numeru portu bind() 3. Zakomunikowanie systemowi, że ma umożliwić połączenia do tego portu listen() 4. Powtarzanie w pętli następujących czynności: tworzenie nowego socketu dla każdego połączenia z klientem accept() komunikacja z klientem send() i recv() zamykanie połączenia z klientem close() Tworzenie socketu, wysyłanie i odbieranie danych oraz zamykanie połączenia wygląda tak samo jak w przypadku klienta
19 Implementacja: echo serwer (1) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include "Practical.h" static const int MAXPENDING = 5; // Maximum outstanding connection requests Ustawienie plików include oraz stałej oznaczającej maksymalną liczbę obsługiwanych połączeń
20 Implementacja: echo serwer (2) int main(int argc, char *argv[]) { if (argc!= 2) // Test for correct number of arguments DieWithUserMessage("Parameter(s)", "<Server Port>"); in_port_t servport = atoi(argv[1]); // First arg: local port Parsing parametrów wywołania programu: atoi() konwertuje łańcuch znaków na liczbę całkowitą (numer portu) jeśli argument nie jest liczbą to atoi() zwróci wartość 0, która spowoduje błąd wykonania funkcji bind() w dalszej części programu
21 Implementacja: echo serwer (3) // Create socket for incoming connections int servsock; // Socket descriptor for server if ((servsock = socket(af_inet, SOCK_STREAM, IPPROTO_TCP)) < 0) DieWithSystemMessage("socket() failed"); Tworzenie socketu TCP: odbywa się tak samo jak w przypadku klienta
22 Implementacja: echo serwer (4) // Construct local address structure struct sockaddr_in servaddr; // Local address memset(&servaddr, 0, sizeof(servaddr)); // Zero out structure servaddr.sin_family = AF_INET; // IPv4 address family servaddr.sin_addr.s_addr = htonl(inaddr_any); // Any incoming interface servaddr.sin_port = htons(servport); // Local port Wypełnienie pól struktury z informacjami o adresie serwera: struktura sockaddr_in (IPv4) ponieważ adres IP nie ma większego znaczenia to można posłużyć się dowolnym przypisanym maszynie, na której działa serwer INADDR_ANY funkcje htonl() oraz htons() używane do konwersji adresu i numeru portu na właściwą postać
23 Implementacja: echo serwer (5) // Bind to the local address if (bind(servsock, (struct sockaddr*) &servaddr, sizeof(servaddr)) < 0) DieWithSystemMessage("bind() failed"); Powiązanie socketu z numerem portu i adresem IP: wiązanie socketu z lokalnym adresem i numerem portu bind() klient podaje adres serwera (connect), a serwer podaje swój własny adres (bind) wykonanie funkcji bind() może zakończyć się niepowodzeniem z różnych powodów np.: inny socket korzysta już z tego samego portu wymagane są specjalne uprawnienia do powiązania z portem (szczególnie dla portów o numerach mniejszych od 1024
24 Implementacja: echo serwer (6) // Mark the socket so it will listen for incoming connections if (listen(servsock, MAXPENDING) < 0) DieWithSystemMessage("listen() failed"); Przełączenie socketu w tryb nasłuchiwania: listen() przed wykonaniem listen() wszystkie przychodzące połączenia są odrzucane connect() po stronie klienta kończy się błędem
25 Implementacja: echo serwer (7) for (;;) { // Run forever struct sockaddr_in clntaddr; // Client address HandleTCPClient(clntSock); } Pętla, w której następuje iteracyjna obsługa przychodzących połączeń
26 Implementacja: echo serwer (8) struct sockaddr_in clntaddr; // Client address // Set length of client address structure (in-out parameter) socklen_t clntaddrlen = sizeof(clntaddr); // Wait for a client to connect int clntsock = accept(servsock, (struct sockaddr *) &clntaddr, &clntaddrlen); if (clntsock < 0) DieWithSystemMessage("accept() failed"); Akceptowanie przychodzących połączeń: zamiast wysyłania i odbierania danych, w taki sposób, jak w aplikacji klienta, stosowana jest funkcja accept(), która buforuje dane przez cały czas połączenia z nasłuchującycm portem accept() zwraca deskryptor nowego socketu, który został użyty do połączenia ze zdalnym socketem, drugi argument jest wskaźnikiem do struktury sockaddr_in, a trzeci wskazuje długość adresu po pozytywnym wykonaniu funkcji accept() struktura sockaddr_in zawiera adres IP oraz numer portu socketu, który nawiązał połączenie
27 Implementacja: echo serwer (9) // clntsock is connected to a client! char clntname[inet_addrstrlen]; // String to contain client address if (inet_ntop(af_inet, &clntaddr.sin_addr.s_addr, clntname, sizeof(clntname))!= NULL) printf("handling client %s/%d\n", clntname, ntohs(clntaddr.sin_port)); else puts("unable to get client address"); Wypisanie informacji o połączonym kliencie: cintaddr zawiera adres i numer portu połączonego klienta binarną formę adresu klienta trzeba zamienić na postać w zapisie kropkowym inet_ntop() przed wypisaniem numeru portu należy go przekonwertować na właściwą postać ntohs()
28 Implementacja: echo serwer (10) HandleTCPClient(clntSock); Obsługa właściwej usługi (protokołu) aplikacji w tym przypadku echo Zaleca się oddzielić tę część programu i umieścić jego implementację w osobnym pliku Zalecana zasada: rozdzielić implementację funkcji serwera od implementacji obsługiwanych przez niego usług i protokołów, dzięki temu kod serwera można ponownie wykorzystać bez jakichkolwiek zmian
29 Implementacja: HandleTCPClient (1) Zasada działania: odbieranie danych z podanego socketu i odsyłanie ich z powrotem na ten sam socket iteracyjne odbieranie danych trwa tak długo jak recv() zwraca wartość dodatnią recv() działa tak długo jak cokolwiek przychodzi od klienta lub do momentu, gdy klient zamknie połączenie (recv() zwraca wtedy 0)
30 Implementacja: HandleTCPClient (2) void HandleTCPClient(int clntsocket) { char buffer[bufsize]; // Buffer for echo string // Receive message from client ssize_t numbytesrcvd = recv(clntsocket, buffer, BUFSIZE, 0); if (numbytesrcvd < 0) DieWithSystemMessage("recv() failed"); // Send received string and receive again until end of stream while (numbytesrcvd > 0) { // 0 indicates end of stream // Echo message back to client ssize_t numbytessent = send(clntsocket, buffer, numbytesrcvd, 0); if (numbytessent < 0) DieWithSystemMessage("send() failed"); else if (numbytessent!= numbytesrcvd) DieWithUserMessage("send()", "sent unexpected number of bytes"); } // See if there is more data to receive numbytesrcvd = recv(clntsocket, buffer, BUFSIZE, 0); if (numbytesrcvd < 0) DieWithSystemMessage("recv() failed"); } close(clntsocket); // Close client socket
31 Programy serwera i klienta uruchomienie % TCPEchoServer Handling client % TCPEchoClient "Echo this!" 5000 Received: Echo this! Serwer działa na hoście Klient działa na hoście Numer portu 5000
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ółowoIteracyjny 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ółowoLiteratura 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ółowoKró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ółowo3. 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ółowoZESZYTY 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ółowoAplikacja 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ółowoGniazda 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ółowo2. Interfejs gniazd. 2.1. Gniazdo
2. 2.1. Gniazdo Gniazdo (ang. socket): pewna abstrakcja wykorzystywana do wysyłania lub otrzymywania danych z innych procesów. Pełni rolę punktu końcowego w linii komunikacyjnej. to interfejs między programem
Bardziej szczegółowoProgramowanie 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ółowoTCP - 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ółowoAplikacja 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ółowoPodstawowe 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ółowoOprogramowanie 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ółowoSUMA 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ółowoArchitektura 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ółowoProgramowanie 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ółowoPobieranie argumentów wiersza polecenia
Pobieranie argumentów wiersza polecenia 2. Argumenty wiersza polecenia Lista argumentów Lista argumentów zawiera cały wiersz poleceń, łącznie z nazwą programu i wszystkimi dostarczonymi argumentami. Przykłady:
Bardziej szczegółowoGniazda 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ółowoArchitektura 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ółowoTworzenie 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ółowoProgramowanie 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ółowoGniazda. 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ółowoInstytut 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ółowoGniazda 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ółowoKomunikacja 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ółowoPROGRAMOWANIE 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ółowoPliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego
Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt
Bardziej szczegółowoKlient-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ółowo1.1 Przykład znajdowanie liczb pierwszych leżących w zadanym zakresie, tryb bezpołączeniowy
1.1 Przykład znajdowanie liczb pierwszych leżących w zadanym zakresie, tryb bezpołączeniowy Należy znaleźć liczby pierwsze w zakresie od 2 do N na P komputerach. Zarządca pocz[i], kon[i] wykonawca 1 wykonawca
Bardziej szczegółowoKomunikacja sieciowa - interfejs gniazd
SOE Systemy Operacyjne Wykład 14 Komunikacja sieciowa - interfejs gniazd dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Model komunikacji sieciowej Model OSI (ang. Open System
Bardziej szczegółowoBiblioteka 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ółowoPROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę
Bardziej szczegółowo1. Model klient-serwer
1. Model klient-serwer 1.1. Model komunikacji w sieci łącze komunikacyjne klient serwer Tradycyjny podział zadań: Klient strona żądająca dostępu do danej usługi lub zasobu Serwer strona, która świadczy
Bardziej szczegółowoRPC. 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ółowoProgramowanie aplikacji równoległych i rozproszonych. Wykład 4
Wykład 4 p. 1/44 Programowanie aplikacji równoległych i rozproszonych Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Gniazda - Wstęp
Bardziej szczegółowoSieci 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ółowoWinsock. Sieci Komputerowe II Wyk ład 3
Winsock Sieci Komputerowe II Wyk ład 3 Plan Przygotowanie środowiska Inicjacja Winsock Aplikacja klienta: tworzenie socketu łączenie z socketem serwera wysyłanie i odbieranie danych rozłączanie klienta
Bardziej szczegółowoObsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011
Obsługa plików Systemy Operacyjne 2 laboratorium Mateusz Hołenko 25 września 2011 Plan zajęć 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach otwieranie i zamykanie zapis i odczyt
Bardziej szczegółowoGniazda - Wstęp. Oprogramowanie systemów równoległych i rozproszonych. Sposób komunikacji. Domena adresowa. olas@icis.pcz.pl
Gniazda - Wstęp Oprogramowanie systemów równoległych i rozproszonych Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Domena adresowa 1/??
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowodynamiczny przydział pamięci calloc() memset() memcpy( ) (wskaźniki!! )
dynamiczny przydział pamięci malloc() free() realloc() calloc() memset() memcpy( ) mempcpy( ) memmove() (wskaźniki!! ) 1 dynamiczny przydział pamięci void * memccpy (void * to, void * from, int c, int
Bardziej szczegółowoLaboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach
Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,
Bardziej szczegółowoArchitektury 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ółowoModel OSI/ISO. Komputer B. Warstwy w modelu OSI aplikacji. aplikacji. prezentacji Komputer A. prezentacji. sesji. sesji. komunikacja wirtualna
1 Plan wykładu 1. Model ISO/OSI warstwy modelu OSI transmisja w modelu OSI 2. Model TCP/IP protokół UDP protokół TCP 3. Połączenie i rozłączenie w TCP 4. Programowanie z wykorzystaniem gniazd. 2 Model
Bardziej szczegółowoGniazda 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ółowoTransport. 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ółowoInstrukcja 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ółowoWstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Bardziej szczegółowoiseries Programowanie z użyciem gniazd
iseries Programowanie z użyciem gniazd iseries Programowanie z użyciem gniazd Copyright International Business Machines Corporation 2000, 2001. Wszelkie prawa zastrzeżone. Spis treści Część 1. Programowanie
Bardziej szczegółowoProgramowanie Proceduralne
Programowanie Proceduralne Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 10 Co dziś będzie: Definiowanie struktury Deklarowanie zmiennych bȩda cych strukturami
Bardziej szczegółowoFunkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Bardziej szczegółowoĆwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:
Ćwiczenie nr 6 Temat: Operacje na łańcuchach znaków. Zagadnienia: Zasady pracy z łańcuchami tekstowymi (tablice wartości typu char). funkcje standardowe operacji na łańcuchach, funkcje I/O dla operacji
Bardziej szczegółowoKomputery i Systemy Równoległe Jędrzej Ułasiewicz 1
Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 1 Interfejs gniazdek Jednolity interfejs API (Application Program Interface) do mechanizmów komunikacji sieciowej. Wprowadzony w wersji Unixa BSD 4.2
Bardziej szczegółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Bardziej szczegółowoPliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego
Bardziej szczegółowoPrzykład aplikacji UDP
#include #include #include /* atoi */ #include /* htons, ntohs... */ #include /* memset */ #include /* inet_ntoa */ #include
Bardziej szczegółowoW różnych systemach definicje mogą się różnić od powyższej. W linuxie sprobuj man 7 ip do wyswietlenia opisu.
Interfejs gniazd. Gniazda TCP. Gniazda (sockets) to abstrakcyjne mechanizmy umożliwiające wykonywanie systemowych funkcji wejścia wyjścia w odniesieniu do sieci. Gniazda zostały zaprojektowane w Berkeley
Bardziej szczegółowoFunkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Bardziej szczegółowoTransport. 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ółowoProcesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011
Procesy Systemy Operacyjne 2 laboratorium Mateusz Hołenko 9 października 2011 Plan zajęć 1 Procesy w systemie Linux proces procesy macierzyste i potomne procesy zombie i sieroty 2 Funkcje systemowe pobieranie
Bardziej szczegółowosocket(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ółowoJĘ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ółowoZadanie 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ółowoProgramowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
Bardziej szczegółowoutworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Bardziej szczegółowoKatedra Elektrotechniki Teoretycznej i Informatyki. wykład 9 - sem.iii. Dr inż. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 9 - sem.iii Dr inż. M. Czyżak Język ANSI C tablice znaków Tablice znaków (łańcuchy) Tablice znaków stanowią specjalny rodzaj tablic o budowie ułatwiającej
Bardziej szczegółowoJęzyki i metodyka programowania. Wprowadzenie do języka C
Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia
Bardziej szczegółowoKatedra Elektrotechniki Teoretycznej i Informatyki. wykład 7- sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 7- sem.iii M. Czyżak Język C tablice znaków Tablice znaków (łańcuchy) Tablice znaków stanowią specjalny rodzaj tablic o budowie ułatwiającej przetwarzanie
Bardziej szczegółowoISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Bardziej szczegółowoI - Microsoft Visual Studio C++
I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i
Bardziej szczegółowoŁącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.
Przykład: $ ls more Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Tworzenie łącza #include int pipe(int filedes[2]); Przykład: int
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
Bardziej szczegółowoInformacje 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Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim
Bardziej szczegółowoPolitechnika Łó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ółowoSieciowa komunikacja procesów - XDR i RPC
*** abc.x Przyklad pliku RPCGEN Obliczanie sumy, roznicy i iloczynu dwoch liczb calkowitych *** ************************************ Wywolanie procedury odleglej dopuszcza tylko jeden argument wywolania
Bardziej szczegółowoĆ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ółowoGhost in the machine
Operacje na pami eci i odrobina I/O Zak lad Chemii Teoretycznej UJ 8 stycznia 2007 Funkcje operujace Wstep do operacji I/O na plikach 1 Operacje na pami eci 2 Funkcje operujace 3 Wst Funkcje operujace
Bardziej szczegółowoKomunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1
Komunikacja międzyprocesowa Krzysztof Banaś Systemy rozproszone 1 Komunikacja międzyprocesowa Dla funkcjonowania systemów rozproszonych i równoległych z pamięcią rozproszoną konieczna jest sprawna komunikacja
Bardziej szczegółowoMETODY 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ółowoPROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: THREADS Mariusz Rudnicki 2016 1. Przygotowanie platformy i środowiska IDE. Przed uruchomieniem własnego kodu zwiększ priorytet procesu qconn
Bardziej szczegółowo1. Utwórz blok pamięci współdzielonej korzystając z poniższego kodu:
6 Pamięć współdzielona 6.1 Dostęp do pamięci współdzielonej 1. Utwórz blok pamięci współdzielonej korzystając z poniższego kodu: #include #include #include #include
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury
Bardziej szczegółowoWskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
Bardziej szczegółowoTunelowanie, kapsułkowanie, XDR. 1. Transmisja tunelowa i kapsułkowanie serwery proxy. 2. Zewnętrzna reprezentacja danych XDR.
Tunelowanie, kapsułkowanie, XDR 1. Transmisja tunelowa i kapsułkowanie serwery proxy. 2. Zewnętrzna reprezentacja danych XDR. 1 Transmisja tunelowa i kapsułkowanie Sieci komputerowe rozwijały się stopniowo
Bardziej szczegółowoTomasz 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ółowoLaboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 6: Ciągi znaków mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 17 listopada 2016 1. Wprowadzenie Instrukcja poświęcona jest zmiennym, które służą do przechowywania
Bardziej szczegółowoStruktury. Przykład W8_1
Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla
Bardziej szczegółowoBezpieczeństwo systemów informatycznych
Bezpieczeństwo systemów informatycznych Rule Set Based Access Control ĆWICZENIE RSBAC 1 Wprowadzenie RSBAC to zestaw łat na jądro systemu Linux rozszerzających bezpieczeństwo systemu. Wspiera on mechanizmy
Bardziej szczegółowoLaboratorium 6: Dynamiczny przydział pamięci. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 6: Dynamiczny przydział pamięci dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 15 maja 2015 1. Wprowadzenie Instrukcja poświęcona jest dynamicznemu przydziałowi i zwalnianiu pamięci w
Bardziej szczegółowoTryb 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ółowoObsługa plików Procesy
Obsługa plików Procesy Systemy Operacyjne 2 laboratorium Mateusz Hołenko 15 października 2011 Plan zajęć 1 Obsługa plików 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach 3 Operacje
Bardziej szczegółowoJęzyki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
Bardziej szczegółowoTworzenie maszyny wirtualnej
Tworzenie maszyny wirtualnej 1. Aby utworzyć nową maszynę wirtualną, z menu Maszyna wybieramy opcję Nowa. Zostanie uruchomiony kreator tworzenia maszyny wirtualnej. 2. Wpisujemy nazwę maszyny oraz wybieramy
Bardziej szczegółowoProgramowanie sieciowe
Programowanie sieciowe email: dawid@us.edu.pl Programowanie warstwy transportu. - Berkeley sockets. - koncepcja gniazda - bibliteka sockets (connect(),socket(),bind(),listen(),accept(),read(),write() )
Bardziej szczegółowoUzupełnienie dot. przekazywania argumentów
Uzupełnienie dot. przekazywania argumentów #include #include struct nowa { int f; char line[20000]; int k; } reprezentant; int main() { void funkcja7( struct nowa x); reprezentant.k=17;
Bardziej szczegółowoStruktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.
Struktura programu Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. W ostatnich latach najbardziej używanym stylem oprogramowania
Bardziej szczegółowo// Potrzebne do memset oraz memcpy, czyli kopiowania bloków
ZAWARTOŚCI 3 PLIKOW W WORDZIE: MAIN.CPP: #include #include #include pamięci // Potrzebne do memset oraz memcpy, czyli kopiowania bloków #include "Rysowanie_BMP.h" using
Bardziej szczegółowo