W różnych systemach definicje mogą się różnić od powyższej. W linuxie sprobuj man 7 ip do wyswietlenia opisu.
|
|
- Piotr Wrona
- 7 lat temu
- Przeglądów:
Transkrypt
1 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 na potrzeby Unix BSD. Istnieje grupa funkcji systemowych obsługujących gniazda, funkcje te stanowią API (Application Program Interface). Gniazda umożliwiają między innymi przesyłanie danych między procesami działającymi na komputerach w sieci z wykorzystaniem połączeń TCP lub protokołu UDP, przy czym same operacje wysyłania i odbierania danych przypominają zwykłe operacje zapisywania i odczytu z pliku. Gniazdowe struktury adresowe. W wielu funkcjach operujących na gniazdach należy podać wskaźnik do struktury adresowej. Dla różnych rodzin protokołów zdefiniowano różne struktury adresowe. Dla Ipv4 struktura ta nazywa się sockaddr_in. struct sockaddr_in uint8_t sin_len; // długość struktury (16) sa_family_t sin_family; // rodzina adresow: AF_INET u_int16_t sin_port; // nr portu w tzw. sieciowej kolejności // bajtów struct in_addr sin_addr; // 32 bitowy adres IP w sieciowej // kolejności bajtów char sin_zero[8] // nieużywane ; Adres intrernetowy jest właściwie w strukturze: struct in_addr u_int32_t s_addr; adres IP ; W różnych systemach definicje mogą się różnić od powyższej. W linuxie sprobuj man 7 ip do wyswietlenia opisu. Ogólna struktura adresowa gniazda (zdefiniowana w pliku nagłówkowym <sys/socket.h>: struct sockaddr uint8_t sa_family_t char ; sa_len; sa_family; sa_data[14]; Założono wykorzystywanie gniazd dla dowolnej rodziny protokołów obsługiwanej przez system operacyjny, dlatego funkcjom przekazuje się wskaźnik do odpowiedniej struktury
2 rzutowany na sockaddr. Funkcje gniazd powstały przed wprowadzeniem do standardu ANSI C void *.
3 Funkcje przekształcania adresu: inet_aton(), inet_ntoa(), inet_pton(), inet_ntop(). int inet_aton(const char *strptr, struct in_addr *addrptr); Przekształca adres w notacji kropkowej (np ) zapisany jako napis w C na liczbę 32 bitową w sieciowej kolejności bajtów. Funkcja inet_aton() zwraca 1 jeśli napis był poprawny, 0 jeśi wystąpił błąd. char *inet_ntoa(struct in_addr inaddr); Zwraca wskaźnik do napisu w notacji kropkowej. Podobnie działają funkcje inet_pton(), inet_ntop() (patrz man). Kolejność bajtów sieciowa i hosta. Kolejności: little endian - pierwszeństwo bajtu mniej znaczącego, big endian pierwszeństwo bajtu bardziej znaczącego. Funkcje htons(), ntohs(), htonl(), ntohl(). (Host to Net, Net to Host połączone z short lub long).
4 Serwer TCP s=socket() bind() Klient TCP listen() s=socket() accept() connect() write() ustanowienie połączenia (trójfazowe uzgodnienie TCP) dane oczekiwanie na read() Przetwarzanie danych dane write() read() close(s) znacznik końca pliku read() close(s)
5 Schemat typowej komunikacji między klientem a serwerem w TCP dla serwera iteracyjnego. Schemat działania serwera iteracyjnego: s=socket(); connect(); bind(s,...); listen(s,...); while (1) t=accept(s,...); Obsluguj_klienta(t, ); close(t); Schemat działania serwera współbieżnego: s=socket(); connect(); bind(s,...); listen(s,...); while (1) t=accept(s,...); // blokujące oczekiwanie na połączenie if (! (pid=fork()) ) close(s); Obsluguj_klienta(t, ); close(t); else close(t);
6 Przykładowy klient usługi whois. /*Przyjmujemy arbitralny numer portu dla tej uslugi (standardowo w Unixie jest to 43) */ #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> main(int argc, char *argv[]) int s; // Deskryptor gniazda int len; // Dlugosc odebranych danych (w bajtach) struct sockaddr_in sa; /* Internetowa struktura adresu gniazda (IPv4) Jej postac moze sie roznic w roznych systemach. W linuxie sprobuj man 7 ip do wyswietlenia opisu. Przykladowo: struct sockaddr_in sa_family_t sin_family; rodzina adresow: AF_INET u_int16_t sin_port; nr portu struct in_addr sin_addr; ; Adres intrernetowy: struct in_addr u_int32_t s_addr; adres IP ; Typy: u_int16_t (16 bitowa liczba calkowita bez znaku) u_int32_t (32 bitowa liczba calkowita bez znaku) sa zdefiniowane w <sys/types.h> Typ sa_family_t jest zdefiniowany w <sys/socket.h> */ struct hostent *hp; /* struktura przechowujaca informacje o komputerze: nazwa, adresy IP. Definicja w netdb.h Wskaznik do struktury jest zwracany np. przez funkcje gethostbyname. Sprawdz man gethostbyname dla opisu struktury hostent i funkcji gethostbyname. Przykladowo w linuxie: struct hostent char * h_name; nazwa hosta char ** h_aliases; lista aliasow int h_addrtype; typ adresu int h_length; dlugosc adresu char ** h_addr_list; lista adresow IP Uwaga! We wczesnych implementacjach zamiast listy adresow IP byl pojedynczy adres char * h_addr. Dla kompatybilnosci w netdb.h dodaje sie #define h_addr h_addr_list */ char buf[bufsiz+1]; // Bufor char *progname; // Podstawiamy wskaznik do nazwy programu (argv[0] char *host; // Wskaznik do nazwy komputera odleglego char *user; // Wskaznik do napisu okreslajacego nazwe konta progname=argv[0]; // Sprawdz, czy program uruchomiono z dwoma argumentami if(argc!=3) fprintf(stderr,"uzycie:%s maszyna uzytkownik\n",progname);
7 host=argv[1]; user=argv[2]; // Ustal adres (i inne dane)komputera odleglego. Funkcja zwraca wskaznik do // struktury hostent (patrz wyzej) if ((hp=gethostbyname(host))==null) fprintf(stderr,"%s: nie znalazlem komputera %s\n",progname,host); // Skopiuj adres IP z hp->h_addr do sa.sin_addr memcpy(&sa.sin_addr, hp->h_addr, hp->h_length); sa.sin_family=hp->h_addrtype; // Ustal numer portu. Htons powoduje zamiane na porzadek sieci sa.sin_port=htons(51900); // ntohs zamienia zapis liczby na porzadek hosta printf("\nport:%d\n",ntohs(sa.sin_port)); // Otworz gniazdo. Funkcja socket zwraca deskryptor gniazda // lub -1 w razie bledu. Sprawdz man socket. if((s=socket(hp->h_addrtype,sock_stream,0))<0) perror("socket"); // Podlacz gniazdo do serwera. Sprawdz man connect. // Standardowo wymaga rzutowania na typ wskazujacy na // strukture struct sockaddr if(connect(s,(struct sockaddr *) &sa, sizeof(sa))<0) perror("connect"); // Wyslij zapytanie do serwera. Jesli nie uda sie wyslac // do gniazda tylu bajtow ile wynosi dlugosc napisu *user // to blad zapisu. if (write(s,user,strlen(user))!= strlen(user)) fprintf(stderr, "%s: blad zapisu",progname); // Dopoki serwer nie zakonczyl pisania czytaj dane do bufora. // Odpowiedz serwera moze dojsc "w kawalkach". // Deskryptor pliku 1 uzyty w funkcji write oznacza // standardowe wyjscie. while ((len=read(s,buf,bufsiz))>0) write(1,buf,len); // Zamknij gniazdo close(s); // Zakoncz z kodem bledu 0 exit(0); Przykładowy serwer usługi whois.
8 /* Przyjeto arbitralny numer portu (standardowo w Unixie jest to 43). Serwer obsluguje jednoczesnie jednego klienta. Ewentualne odwolania innych klientow ustawiane sa w kolejce o dlugosci zdefiniowanej przez DL_KOLEJKI*/ #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <pwd.h> #define DL_KOLEJKI 5 #define MAXHOSTNAME 32 int main(int argc, char * argv[]) int s,t; // Deskryptory gniazd int i; // Zmienna robocza struct sockaddr_in sa, isa; // Internetowa struktura adresowa gniazda // Opis w programie klient struct hostent *hp; // Struktura przechowujaca dane o komputerze // Opis w programie klient char *progname; // wskaznik do nazwy programu char localhost[maxhostname+1];// nazwa lokalnego komputera jako napis progname=argv[0]; // Odczytaj nazwe komputera lokalnego gethostname(localhost,maxhostname); // Odczytaj dane o kpmputerze lokalnym (m.in. numer IP) if((hp=gethostbyname(localhost))==null) fprintf(stderr, "%s: Nie znalazlem komputera %s\n", progname); // Ustal numer portu sa.sin_port = htons(1900); // Skopiuj adres IP z hp->h_addr do sa.sin_addr memcpy(&sa.sin_addr,hp->h_addr, hp->h_length); //Mozna to zrobic inaczej: //bcopy((char *)hp->h_addr, (char *)&sa.sin_addr, hp->h_length); sa.sin_family=hp->h_addrtype; // Otworz gniazdo. Funkcja socket zwraca deskryptor gniazda // lub -1 w razie bledu. Sprawdz man socket. if ((s=socket(hp->h_addrtype, SOCK_STREAM,0))<0) perror("socket"); // Zwiaz gniazdo z numerem IP i numerem portu (przypisanie // lokalnego adresu protokolowego. Wymaga rzutowania drugiego // argumentu na wskaznik do struktury struct sockaddr. Zwraca // zero jesli wszystko ok, -1 w przeciwnym wypadku. if ( ( bind(s,(struct sockaddr *) &sa,sizeof(sa))<0)) perror("bind"); // Ustaw gniazdo w stan nasluchiwania (gniazdo bierne)
9 // i ustal maksymalna liczbe polaczen, ktore jadro systemu powinno // ustawic w kolejce do tego gniazda (DL_KOLEJKI) listen(s,dl_kolejki); // Wejdz w nieskonczona petle w oczekiwaniu na polaczenia. while(1) i=sizeof isa; // Zawieszenie na funkcji accept w oczekiwaniu na klientow // (uspienie procesu). Patrz man 2 accept. Funkcja accept tworzy // nowe gniazdo dla polaczenia z klientem i obslugi klienta. // Gniazdo nasluchujace dalej sluzy tylko do nasluchu. if((t=accept(s,(struct sockaddr *) &isa,&i))<0) perror("accept"); whois(t); // Wykonanie uslugi whois (patrz nizej) close(t); whois(int sock) struct passwd *p; passwd // Patrz man getpwnam. char buf[bufsiz+1]; int i; // Odczytaj zapytanie od klienta if ((i=read(sock,buf,bufsiz))<=0) return; // Zakoncz napis standardowym znakiem \0 buf[i]='\0'; // struktura przechowujaca dane z linijki w /etc/ // getpwnam zwraca wskaznik do struktury zawierajacej // pola linijki z /etc/passwd, ktˇra odpowiada // uzytkownikowi o nazwie przekazanej jako parametr. if((p=getpwnam(buf))==null) strcpy(buf,"nie ma takiego uzytkownika\n"); else sprintf(buf,"%s: %s\n",p->pw_name, p->pw_gecos); // Wpisz bufor do gniazda (wyslij dane do klienta) write(sock,buf,strlen(buf)); return;
10 Ważne zagadnienia objaśniane na podstawie przykładowych programów. Działanie funkcji fork(). Obsługa sygnałów. Sygnał jest informacją dla procesu, że wystąpiło jakieś zdarzenie. Sygnały nazywane są też przerwaniami programowymi. Sygnały są na ogół wysyłane asynchronicznie. Sygnały są wysyłane z procesu do procesu (również siebie samego) oraz z jądra do procesu. Gdy kończy się proces potomny, wówczas jądro systemu przesyła do procesu macierzystego sygnał SIGCHLD. Proces potomny staje się zombie (defunct), umożliwiając procesowi macierzystemu pobranie informacji o rozmiarach zasobów użytych przez proces potomny. Aby nie był tworzony zombie należy wywołać funkcję wait() w funkcji obsługującej sygnał SIGCHLD. signal(sigchld, sig_chld);. void sig_chld(int signo) pid_t pid; int stat; pid = wait(&stat); return; Takie rozwiązanie może się jednak zakończyć przerwaniem wykonywania programu (procesu macierzystego), jeśli sygnał nadszedł w momencie blokowania na funkcji accept(). Nie we wszystkich systemach jądro wznawia przerwane funkcje systemowe. Funkcja może być zakończona z kodem błędu EINTR. Zatem należy dodać obsługę tego błedu, np. if ( t = accept() < 0) if (errno == EINTR) continue; // powrót do pętli, w której wywoływana jest f. accept(); else perror( accept ); Najprostszy sposób (niestety nie działający we wszystkich systemach) na uniknięcie kłopotów to zlecenie ignorowania sygnału SIGCHLD. Robi się to z użyciem funkcji signal(): signal(sigchld, SIG_IGN);
11
12 Gniazda UDP. Serwer UDP s=socket() Klient UDP bind() s=socket() recvfrom() sendto() dane oczekiwanie na nadejście danych od dowolnego klienta Przetwarzanie danych dane sendto() recvfrom() close(s) Schemat typowej komunikacji między klientem a serwerem w UDP. Przypisanie numeru portu lokalnego (efemerycznego) następuje przy pierwszym wywołaniu funkcji sendto().
13 Klient nie ustanawia połączenia z serwerem, jedynie wysyła datagramy. Serwer odbiera datagramy od dowolnych klientów. Funkcje recfrom() zwraca adres klienta, zatem serwer może przesłać odpowiedź.
14 #include <sys/socket.h> ssize_t recvfrom(int socket, void *buff, size_t nbytes, int flags, struct sockaddr *from, socklen_t *addrlen); ssize_t sendto(int socket, const void *buff, size_t nbytes, int flags, const struct sockaddr *to, socklen_t addrlen); Funkcje te zwracają liczbę odesłanych albo pobranych bajtów lub 1 jeśli wystąpił błąd. Przykładowy klient UDP klient echa. #include <unp.h> #define MAXLINE... int main (int argc, char ** argv) int s; struct sockaddr_in servaddr; int n; char sendbuff[maxline], recvbuff[maxline+1]; if ( argc!= 2) printf( Uzycie: klient adresip ); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons( ); // wstawienie numeru IP do servaddr inet_pton ( AF_INET, argv[1], &servaddr.sin_addr); s = socket (AF_INET, SOCK_DGRAM, 0); if (p < 0 ) perror("socket"); // fgets wczytuje linię ze standardowego wejścia // fputs wypisuje linię na standardowe wyjście while (fgets (sendbuff, MAXLINE, stdin)!= NULL) sendto(s, sendbuff, strlen(sendbuff),0,&servaddr, sizeof(servaddr)); /* Poniżej NULL oznacza, że klient odbiera odpowiedź od dowolnego serwera */ n = recvfrom(s, recvbuff, MAXLINE, 0, NULL, NULL); recvbuff[n] = 0; // zakończenie napisu fputs(recvbuff, stdout);
15 Fragment klient echa wersja z zarządzaniem czasem oczekiwania przez sygnał SIGALRM.... // ustanowienie procedury obslugi sygnalu SIGALRM signal(sigalrm, sig_alrm); while (fgets (sendbuff, MAXLINE, stdin)!= NULL) sendto(s, sendbuff, strlen(sendbuff),0,&servaddr, sizeof (servaddr)); // ustawienie 5-cio sekundowego czasu oczekiwania alarm(5); /* Poniżej NULL oznacza, że klient odbiera odpowiedź od dowolnego serwera */ n = recvfrom(s, recvbuff, MAXLINE, 0, NULL, NULL); if (n < 0) if (errno == EINTR) fprintf(stderr, Przekroczony czas oczekiwania\n ); else perror( Blad gniazda ); else alarm(0); recvbuff[n] = 0; // zakończenie napisu fputs(recvbuff, stdout); // Procedura obslugi sygnalu SIGALRM void sig_alrm( int signo ) // Tylko przerywamy wykonywanie funkcji recvfrom() return; Przykładowy serwer UDP serwer echa. #include <unp.h> int main (int argc, char ** argv) int s; struct sockaddr_in servaddr, cliaddr; int n; int len; char buf[maxline]; s = socket(af_inet, SOCK_DGRAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(inaddr_any); servaddr.sin_port = htons(51000); bind(s, (sockaddr *) &servaddr, sizeof(servaddr)); for ( ; ; ) n = recvfrom(s, buf, MAXLINE, 0, &cliaddr, &len); sendto(s, buf, n, 0, cliaddr, len);
16 Większość serwerów UDP to serwery iteracyjne. Można jednak tworzyć współbieżne (patrz Stevens). Gniazda UDP niepołączone i połączone. Gniazdo niepołączone to takie, jak powyżej. Gniazdo połączone powstaje w wyniku wywołania funkcji connect() dla gniazda UDP. Dla gniazda połączonego: 1) Dla operacji wyjścia adres docelowy jest już zapamiętany i nie można go zmienić. W szczególności zamiast funkcji sendto() należy używać write() (lub send). 2) Podobnie nie stosuje się funkcji recvfrom(), tylko read(). Literatura: W.R. Stevens: Unix programowanie usług sieciowych, tom 1, API: gniazda. WNT, Warszawa 2000.
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ół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ółowoGniazda 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ół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ół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ół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ół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ół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ół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ół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 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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoSockety 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ółowoGniazda BSD UNIWERSYTET GDAŃSKI WYDZIAŁ MATEMATYKI I FIZYKI. Jacek Nowicki
UNIWERSYTET GDAŃSKI WYDZIAŁ MATEMATYKI I FIZYKI Gniazda BSD Jacek Nowicki Praca magisterska napisana pod kierunkiem prof. dra hab. Andrzeja Mostowskiego Gdańsk 2003 Spis treści Wstęp...3 1. Krótki rys
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ół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ółowoPrzykład aplikacji UDP
#include #include #include /* atoi */ #include /* htons, ntohs... */ #include /* memset */ #include /* inet_ntoa */ #include
Bardziej szczegółowoSerwer 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ół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ół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ół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ół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ół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ółowoTIN Techniki Internetowe zima
TIN Techniki Internetowe zima 2016-2017 Grzegorz Blinowski Instytut Informatyki Politechniki Warszawskiej Plan wykładów 2 Intersieć, ISO/OSI, protokoły sieciowe, IP 3 Protokół IP i prot. transportowe:
Bardziej szczegółowoSygnały. 7. Sygnały (2005/2006)
Sygnały Sygnał jest to informacja dla procesu, że wystąpiło jakieś zdarzenie. Sygnały mogą być wysyłane: z procesu do innego procesu (grupy procesów) z procesu do siebie samego z jądra do procesu Sygnały
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ółowo1 Sposób zaliczenia przedmiotu
Jerzy Czepiel 2 KOMUNIKACJA W SIECI 1 Sposób zaliczenia przedmiotu Wymagania: Maksymalnie 2 nieobecności nieusprawiedliwione. Projekty na zajęciach (40 punktów). Krótkie programiki, będące rozwinięciem
Bardziej szczegółowoŁącza nienazwane(potoki)
8. Łącza nienazwane(potoki) Łącze (potok, ang. pipe) jest to urządzenie komunikacyjne pozwalające na przesyłanie informacji w jedną stronę. Jeden proces wysyła dane do łącza za pomocą funkcji write, zaś
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ółowoSerwery współbieżne c.d.
Serwery współbieżne c.d. 1. Serwery wielousługowe i wieloprotokołowe. 2. Sterowanie współbieżnością w serwerze współbieżność sterowana zapotrzebowaniem, alokacja wstępna procesów podporządkowanych. 3.
Bardziej szczegółowoKomunikacja za pomocą potoków. Tomasz Borzyszkowski
Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania
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ół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ółowoSystemy rozproszone. Krzysztof Banaś Obliczenia równoległe 1
Systemy rozproszone Krzysztof Banaś Obliczenia równoległe 1 Historia i pojęcia wstępne Przetwarzanie współbieżne realizacja wielu programów (procesów) w taki sposób, że ich trwanie od momentu rozpoczęcia
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ółowoProgramowanie Programowanie z użyciem gniazd
Systemy IBM - iseries Programowanie Programowanie z użyciem gniazd Wersja 5 Wydanie 4 Systemy IBM - iseries Programowanie Programowanie z użyciem gniazd Wersja 5 Wydanie 4 Uwaga Przed korzystaniem z tych
Bardziej szczegółowoProgramowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania
Bardziej szczegół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ół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. 4. Serwery współbieżne serwery
Bardziej szczegółowoSchemat 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ółowoProgramowanie Programowanie z użyciem gniazd
System i Programowanie Programowanie z użyciem gniazd Wersja 6 wydanie 1 System i Programowanie Programowanie z użyciem gniazd Wersja 6 wydanie 1 Uwaga Przed skorzystaniem z tych informacji oraz z produktu,
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ół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ółowoMechanizmy 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ółowoPROTOKOŁY WARSTWY TRANSPORTOWEJ
PROTOKOŁY WARSTWY TRANSPORTOWEJ Na bazie protokołu internetowego (IP) zbudowane są dwa protokoły warstwy transportowej: UDP (User Datagram Protocol) - protokół bezpołączeniowy, zawodny; TCP (Transmission
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 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ółowoBeej s Guide to Network Programming
Używanie gniazd internetowych Brian "Beej" Hall beej@piratehaven.org Bartosz Zapałowski bartek@klepisko.eu.org Copyright 1995-2001 Brian "Beej" Hall Historia zmian Zmiana Wersja 1.0.0 Sierpień, 1995 Revised
Bardziej szczegółowoPliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:
Pliki W celu wykonania jakiejkolwiek operacji na istniejącym pliku, plik ten musi zostać otwarty, natomiast jeśli plik jeszcze nie istnieje, to musi zostać utworzony. Plik może zostać otwarty w trybie:
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ółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowoProjektowanie 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ółowoIBM i Wersja 7.2. Programowanie Programowanie z użyciem gniazd
IBM i Wersja 7.2 Programowanie Programowanie z użyciem gniazd IBM i Wersja 7.2 Programowanie Programowanie z użyciem gniazd Uwaga Przed skorzystaniem z tych informacji oraz z produktu, którego dotyczą,
Bardziej szczegółowo5. Algorytmy serwera
5. Algorytmy serwera 5.1. Typy serwerów Serwer iteracyjny (ang. iterative server) obsługuje zgłoszenia klientów sekwencyjnie, jedno po drugim. Serwer współbieżny (ang. concurrent server) obsługuje wiele
Bardziej szczegółowo4.2 Sposób korzystania z l acza
4.2 Sposób korzystania z l acza 31 Opis programu: Program procesu potomnego (linie 16 19) jest taki sam, jak w przyk ladzie na listingu 3. W procesie macierzystym nastepuje z kolei przekierowanie standardowego
Bardziej szczegółowoKolejki FIFO (łącza nazwane)
Kolejki FIFO (łącza nazwane) Systemy Operacyjne 2 laboratorium Mateusz Hołenko 6 listopada 2011 Plan zajęć 1 Łącza w systemie Linux kolejki FIFO vs. potoki specyfika łączy nazwanych schemat komunikacji
Bardziej szczegółowoTRX API opis funkcji interfejsu
TRX Krzysztof Kryński Cyfrowe rejestratory rozmów seria KSRC TRX API opis funkcji interfejsu Kwiecień 2013 Copyright TRX TRX ul. Garibaldiego 4 04-078 Warszawa Tel. 22 871 33 33 Fax 22 871 57 30 www.trx.com.pl
Bardziej szczegółowoZdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1
Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego
Bardziej szczegółowoTemat zajęć: Obsługa łączy komunikacyjnych
Temat zajęć: Obsługa łączy komunikacyjnych Czas realizacji zajęć: 180 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: I. Łącza komunikacyjne Potoki nienazwane, potoki nazwane, przykłady
Bardziej szczegółowoINFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Bardziej szczegółowoPoniższe funkcje opisane są w 2 i 3 części pomocy systemowej.
Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,
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ółowoRouting. część 1: adresowanie. Sieci komputerowe. Wykład 2. Marcin Bieńkowski
Routing część 1: adresowanie Sieci komputerowe Wykład 2 Marcin Bieńkowski W poprzednim odcinku Jak przesyłać dane przez sieć Chcemy przesyłać między aplikacjami strumień danych. Globalne adresowanie: w
Bardziej szczegółowoSieci 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ółowoProgramowanie Sieciowe 1
Programowanie Sieciowe 1 dr inż. Tomasz Jaworski tjaworski@iis.p.lodz.pl http://tjaworski.iis.p.lodz.pl/ Cel przedmiotu Zapoznanie z mechanizmem przesyłania danych przy pomocy sieci komputerowych nawiązywaniem
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ół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ół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ół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ół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ółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część trzynasta Tablice struktur, pliki struktur Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści
Bardziej szczegółowoIPC: Kolejki komunikatów
IPC: Kolejki komunikatów Systemy Operacyjne 2 laboratorium Mateusz Hołenko 7 listopada 2011 Plan zajęć 1 Mechanizmy IPC kolejki komunikatów pamięć współdzielona semafory 2 Kolejki komunikatów kolejka komunikat
Bardziej szczegółowoInterfejs 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ół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ółowoLaboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak
Laboratorium z systemów operacyjnych System plików - funkcje systemowe Anna Wojak 1 Zagadnienia do samodzielnego przygotowania: podstawowe polecenia linux, podstawy programowania w jezyku C, deskryptor
Bardziej szczegółowoOperacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia
Materiały Operacje na plikach Informatyka Operacje wejścia-wyjścia w C/C++: Podejście proceduralne Podejście obiektowe Standardowe strumienie wejścia i wyjścia stdin - strumień wejściowy (klawiatura) cin
Bardziej szczegółowoInstrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu
Bardziej szczegółowoProgram wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:
Rozdział 1 Obsługa plików W językach C pliki powiązane są ze strumieniami i pracuje się na nich podobnie jak na innych strumieniach. W języku C do operacji na plikach służą funkcje z biblioteki stdio.h,
Bardziej szczegółowo