Távoli eljáráshívás. Cser András,Wolkensdorfer Péter, Mohácsi János Irányítástechnika és Informatika Tanszék
|
|
- Csongor Lakatos
- 6 évvel ezelőtt
- Látták:
Átírás
1 Távoli eljáráshívás Összeállította: Cser András,Wolkensdorfer Péter, Mohácsi János Irányítástechnika és Informatika Tanszék
2
3 Távoli eljáráshívás ÁLTALÁNOS SZÁMÍTÓGÉPHÁLÓZATI ALAPISMERETEK 1.1. Bevezetés Áttekintés A távoli eljáráshívás (Remote Procedure Call, RPC) egy olyan magasszintû kommunikációs paradigma, amely lehetôvé teszi, hogy távoli eljárások meghívása takarja el az adott alkalmazásban az alsóbb hálózati rétegeket. Az RPC egy logikus kliens-szerver kommunikációt implementál, amely különösen alkalmas hálózatos alkalmazások megvalósítására. Az RPC-ben a kliens eljárás igényeket küld a szervernek, amely azokat megérkezésük után adminisztrálja, elvégzi a kért funkciót, viszontválaszt küld és az eljáráshívás visszatér a kliensnek. Hogyan lehet mindezt használni? Az RPC-vel történô programozás elsôdleges hatása, hogy a programok egy hálózati kliensszerver modellen belül futnak, anélkül, hogy ismerniük kellene az alsóbb hálózati rétegeket és azok mûködését. Az RPC leveszi a programozó hátáról a rabszolgamunka nagy részét, azáltal, hogy a hívások transzparensek. Például egy program egyszerûen meghívhatja a rnusers() C függvényt, amely megadja egy távoli gépen bejelentkezett felhasználók aktuális számát. A hívónak explicite nincs tudomása az RPC-rôl, ô csak egyszerûen egy eljárást hív meg, mintha pl. egy malloc()-ot hívna. Ebben a leírásban csak a C nyelvû RPC hívásokkal foglalkozunk, de tudnunk kell, hogy bármilyen programozási nyelvbôl lehet RPC-t hívni. Az RPC-t általában hálózatos kommunkációra használjuk, de annak sincs semmi akadálya, hogy két, azonos gépen futó processz közötti kommunikációra használjuk Terminológia Ebben a leírásban szerverekrôl, szolgáltatásokról, programokról, eljárásokról, kliensekrôl és verziókról esik szó. A szerver hálózati szolgáltatásokat kínál, amely gyûjteménye egy vagy több távoli programnak. A távoli program egy vagy több távoli eljárást implementál; az eljárásokat, azok paramétereit és visszatérési értékeit az adott program specifikációja dokumentálja. A hálózati kliensek kezdeményezik a szolgáltatások távoli eljárásainak meghívását Az RPC modell A távoli eljáráshívás modellje hasonlít a helyi eljárások hívásának modelljére. A helyi eljáráshívás esetén a hívó az eljáráshívás argumentumait egy ismert helyre teszi, ezután
4 84 Távoli eljáráshívás átadja a vezérlést az eljárásnak, majd annak lefutása után visszakapja a vezérlést. Ekkor a hívás eredményét a hívó elveszi a jól ismert helyrôl és tovább fut. A távoli eljáráshívás hasonlít erre abban, hogy a végrehajtás szála (thread of control) logikailag két folyamaton halad át. Egyik a hívó folyamat, a másik a szerver folyamat. Ez azt jelenti, hogy a hívó folyamat egy hívó üzenetet küld a szervernek, majd válaszra várakozik (block). A hívó üzenet tartalmazza egyebek mellett az eljárás paramétereit. A válasz tartalmazza egyebek mellett az eljárás eredményeit. Miután megérkezett a válaszüzenet, a kliens kiveszi abból az eredményt, majd továbbfut. A szerver oldalon egy alvó (várakozó) folyamat várja a hívó üzenetet. Amikor az megérkezik, kiveszi abból az eljárás paramétereit, elvégzi az eljárás feladatát, majd visszaküld egy válaszüzenetet és a következô hívásra várakozik. Vegyük észre, hogy ebben a modellben egyidôben csak egy folyamat aktív. Részletesebben lásd az 1. ábrát. kliens program szerver démon RPC hívás kliens program "B" gép Szolg. meghív. "A" gép Szolg. vegreh.. végrehajtás Vissz. ért. kliens program Válasz folytatódik 1. ábra Hálózati kommunikáció távoli eljáráshívással Az ábra szerint az RPC-ben rejtve maradnak a hálózat szállítási rétegének funkciói.
5 2.1. Verziók és számok 2. SPECIÁLIS HÁLÓZATI ISMERETEK Távoli eljáráshívás 85 Minden RPC eljárást egyértelmûen definiál egy program szám és egy eljárás szám. A program szám specifikálja összetartozó távoli eljárások egy csoportját. Ezen belül minden eljárásnak különbözô eljárás száma van. Minden programnak van egy verziószáma, így amikor kisebb változtatást eszközlünk egy távoli szolgáltatáson (például újabb eljárásokat valósítunk meg), nem kell egy újabb program számot adnunk, elég csak a verziószámot változtatnunk. Ha például azt szeretnénk, hogy egy eljárás megadja a távoli felhasználók számát, meg kell keresnünk a megfelelô programot, verzió és eljárásszámot a kézikönyvben, hasonlóan a memória allokátor nevéhez, ha pl. memóriát akarunk allokálni Portmap A portmap az egyetlen olyan hálózati szolgáltatás, amelynek kell, hogy legyen dedikált és mindenki által ismert portja (dedicated and well-known). Egyéb hálózati szolgáltatásokhoz statikusan vagy dinamikusan hozzárendelhetünk port számokat, amennyiben ezeket a portokat regisztráljuk hostjuk portmap-jával. A portmap program a számítógép bootolásakor automatikusan elindul. A szerver inicializálásakor meghívja az adott gépen futó portmap-ot, hogy az bejegyezze a szerver program és verziószámát. A kliens úgy találja meg a szerver portját, hogy küld a szerver gépen futó portmap-nak egy hívóüzenetet. Ha regisztrálva van az adott program a portmap-nál, akkor a portmap visszaküld egy RPC válaszüzenetet a kliensnek, amelyben megadja a szerver port számát. Ezután már a kliens közvetlenül küldhet üzenetet a szerver ilymódon megtudott portjára. Az általunk használt fejlesztôi környezet beépíti a portmap-ot a szerver oldali programba Transzport és szemantika Az RPC független a transzport protokolltól. Ez azt jelenti, hogy az RPC nem foglalkozik azzal, hogy miként adódik át egy üzenet egyik folyamattól a másiknak. A protokoll csak az üzenetek specifikációjával és interpretációjával foglalkozik. Fontos azt is látni, hogy az RPC nem foglalkozik semmilyen megbízhatósági követelmény kielégítésével, vagy azzal, hogy az alkalmazásnak tudnia kellene az RPC alatti szállítási rétegrôl. Amennyiben tudja, hogy egy megbízható réteg felett fut (pl. TCP/IP), akkor a legtöbb feladatát már ellátták. Amenyiben egy megbízhatatlan szállítási réteg (pl. UDP/IP) felett fut, akkor saját magának kell implementálnia a retranszmissziót és time-out-ot, mivel az RPC réteg nem ad semmiféle ilyen szolgáltatást.
6 86 Távoli eljáráshívás A transzport megválasztása Az általunk használt Sun RPC-t támogatja az UDP/IP és a TCP/IP szállítasi réteg is. (Az elôzôekben megismert TLI Transport Layer Interface csak egy OSI kompatibilis felületet ad az UDP/IP és a TCP/IP rétegeknek, eltakarva azokat.) A szállítási réteg megválasztása függ az alkalmazás igényeitôl. A továbbiakban egyszerûsége és megbízhatósága miatt a TCP/IP-t fogjuk használni Külsô adatreprezentáció (external Data Representation, XDR) Az RPC feltételezi az XDR létezését, amely egy szabványa gépfüggetlen adatleírásnak és kódolásnak. Az XDR hasznos a különféle architektúrák közötti adatátvitelben és lehetôvé teszi olyan különféle gépek közötti adatcserét, mint pl. Sun workstation-ok, VAX, IBM-PC és Cray. Az RPC képes tetszôleges adatstruktúrák kezelésére, függetlenül a különféle gépek byte sorrendjére vagy adatstruktúra elrendezésére. Erre úgy van lehetôség, hogy az adatokat mielôtt a hálózatra küldenénk átalakítjuk XDR formátumra. Ezt a folyamatot szerializálásnak (serialization), a hálózatról vett adatok visszaállítását pedig deszerializálásnak (deserialization) hívjuk rpcinfo Az rpcinfo parancs használatával információt kérhetünk a portmap-nál bejegyzett programokról. Ez a parancs felvilágosítást ad az adott host-on bejegyzett RPC szolgáltatásokról, azok port számairól és az általuk használt szállítási rétegrôl. Bôvebb informació az rpcinfo(8c) manual page-ben található, a UNIX rendszereken A program számok kiosztása A kiosztást - 0x csoportokban - a következô táblázat tartalmazza. 0x x1fffffff 0x x3fffffff 0x x5fffffff 0x x7fffffff 0x x9fffffff 0xa xbfffffff 0xc xdfffffff 0xe xffffffff Sun által definiálva A felhasználó által definiálva Átmeneti Fenntartott Fenntartott Fenntartott Fenntartott Fenntartott
7 Távoli eljáráshívás A FELADATMEGOLDÁSHOZ SZÜKSÉGES SPECIÁLIS ISMERETEK 3.1. rpcgen programozói leírás Az RPC használatának részletei nehézkesek és sok munkát igényelnek. Még nehezebb megírni az XDR konverziós rutinokat, melyek az eljáráshívások argumentumait és az eljárások eredményeit hálózatos formából belsô formába és fordítva konvertálják. Szerencsére létezik egy rcpgen(1) nevû program, amely hozzásegíti a programozókat a direkt és egyszerûbb RPC programozáshoz. Az rpcgen elvégzi a piszkos munka legnagyobb részét, ezáltal lehetôvé téve, hogy a programozó a program érdemi részének debuggolásával foglalkozhassék. Az rpcgen egy fordítóprogram (compiler). A távoli program interface definícóját egy RPC nyelvnek nevezett nyelven kell megadni, amely hasonlít a C nyelvhez. Az rpcgen outputja néhány C nyelvû forráslista, amely az RPC funkciókat fogja megvalósítani. Ez tartalmazza a kliens oldali RPC vázat (skeleton routines), a szerver oldali vázat, az XDR filter rutinokat a paraméterekre és visszatérési értekekre, egy közös definíciókat tartalmazó header (.h) file-t és opcionálisan olyan dispatch táblázatokat, amely alapján a szerver ellenôrizheti, hogy a kliensektôl érkezô kéréseknek van-e végrehajtási jogosultsága az adott szerveren. A kliens oldali interface váz valósítja meg az RPC-vel a kapcsolatot és rejti el hatékonyan az alsóbb hálózati rétegeket. A szerver oldali váz feladata hasonlóan az alsóbb rétegek elrejtése azon eljárások elôl, amelyeket a kliens hív. Az rpcgen output file-jait a C fordítóval normálisan lehet lefordítani és linkelni. A fejlesztônek ezután mindössze annyi a feladata, hogy megírja a szerver oldali eljárásokat (tetszôleges programnyelven, amely figyelembe veszi a rendszer rendszerhívási konvencióit) és ezeket összelinkelje az rpcgen által gyártott szerver oldali vázzal. Ilymódon egy, a szerver oldalon futtatandó, bináris programot kap. Ahhoz, hogy ezt a távoli programot használhassuk, a programozónak meg kell írnia egy közönséges main()- t tartalmazó programot, amely meghívja a kliens váz helyi eljárásait. Ezt a forrást kell összelinkelni az rpcgen által gyártott kliens oldali vázzal, ahhoz, hogy egy végrehajtható programot kapjunk Lokális eljárások távolivá tétele Tegyük fel, hogy van egy alkalmazásunk, amely már fut lokálisan, és most szeretnénk távolivá tenni. Ezt a konverziót egy olyan egyszerû programon mutatjuk be, amely egy üzenetet ír a képernyôre. Ez a program a prtmsg.c. Általában szükséges annak ismerete, hogy egy eljárásnak milyen típusú paraméterei és visszatérési értékei vannak. Ebben az esetben a printmessage() függvény egy
8 88 Távoli eljáráshívás stringet vesz el, és integert ad vissza. Ennek ismeretében megírhatjuk az RPC protokollunk specifikációját, amelyet le fogunk az rpcgen-nel fordíttatni. Ezt a specifikációt az msg.x file tartalmazza. A távoli eljárások távoli programok részei, így nem tettünk mást, mint egy teljes távoli programot deklaráltunk, amely egyetlen PRINTMESSAGE eljárást tartalmaz. Ezt az eljárást mint a távoli program 1-es verzióját deklaráltuk. Vegyük észre, hogy mindent nagybetûkkel írtunk. Erre nincs szükség, pusztán hasznos konvenció. Vegyük még azt is észre, hogy az argumentum típusa string és nem char *. Ez azért van, mert a char * a C-ben nem egyértelmû. A programozók ezen általában egy 0-végû karaktersorozatot értenek, de lehetne pl. egy darab karakter, vagy egy karaktertömbre mutató pointer is. Az RPC-ben a 0-végû karaktersorozatot egyértelmûen string-nek hívják. Már csak két dolgot kell megcsinálnunk. Az egyik maga a távoli eljárás. A következôk tartalmazzák a távoli eljárás definícióját, amely implementálja az elôzôekben deklarált PRINTMESSAGE-t. A programot az msg_proc.c tartalmazza. Ebben vegyük észre, hogy a printmessage_1() távoli eljárás három dologban különbözik a helyi printmessage() eljárástól: 1. Egy stringre mutató pointert vesz át egy string helyett. Ez minden távoli eljárásra igaz, hogy pointert vesz át argumentumára. Ha nincs argumentum, void-ot kell megadnunk. 2. Egy integerre mutató pointert ad vissza, egy integer helyett. Ez szintén jellemzô a távoli eljárásokra, hogy visszatérési értékeikre mutató pointereket adnak vissza. Ezért kell a visszatérési értéket mint static-ot deklarálni. Ha nincs visszatérési érték, akkor void-ot kell megadni. 3. A távoli eljárásnak a nevéhez egy _1 -es postfix kapcsolódik. Általában minden távoli eljárás, amelyet az rpcgen hív, a következô konvenció szerint kapja nevét: az eljárásdefiníciót átalakítja kisbetûkre, tesz utána egy aláhúzás ("_") karaktert és a verziószámot. Ezután már csak az marad, hogy deklaráljuk a kliens oldali fôprogramot, amely meghívja a távoli eljárást. Ez a program a rprtmsg.c. Érdemes még néhány dolgot megjegyezni: 1. Elôször megalkotjuk a clnt_create() RPC könyvtári függvénnyel a kliens handle-t. (azonosítót). Ezeket adjuk át a váz-rutinoknak, amelyek ténylegesen meghívják a távoli eljárást. 2. A clnt_create() utolsó paramétere "tcp", a szállítási szolgáltatás, amely felett az alkalmazást futtatni kívánjuk. (Ez lehetett volna udp is.)
9 Távoli eljáráshívás A távoli printmessage_1() eljárást ugyanúgy kell hívni, mint ahogy azt az msg_proc.c -ben deklaráltuk, persze megadva utolsó argumentumként a client handle-t. 4. A távoli eljárás kétféleképpen mondhat csôdöt: vagy maga az RPC nem mûködik, vagy a távoli eljárásban lép fel hiba. A *result-ban van az eredmény. A Makefile írja le, hogyan kell összefordítanunk az egyes részeket. Az rpcgen a következôket csinálja az msg.x file lefordításakor: 1. Készít egy msg.h file-t, amely tartalmazza a #define-okat a MESSAGEPROG-hoz, MESSAGEVERS-hez és PRINTMESSAGE-hoz. 2. Készít kliens oldali váz rutinokat a msg_clnt.c file-ban. Ha DOS alatt dolgozunk, akkor 8 karakterre csonkol!!! Ezt a Makefile-ban figyelembe kell venni.) Esetünkben csak egy ilyen eljáráshoz, a printmessage()-hez. Ha az input file neve hihi.x, akkor az rpcgen által generált váz-program neve hihi_clnt.c. 3. Generálja az msg_svc.c szerver programot, amely meghívja a printmessage_1() eljárást. Az elnevezés hasonló az elôzöekhez: a hihi.x inputból az rpcgen készít egy szerver oldali hihi_svc.c nevû filet, amely tartalmazza a szerver oldali vázat Programlista melléklet példaprogram: távoli gépre egy üzenet kinyomtatása ************************************************************************ * Remote message printing in RPC * It contains: * prtmsg.c : local message printing (demo only) * msg.x : RPC language source * msg_proc.c : RPC Server routines * rprtmsg.c : RPC Client routines, it has main() * Makefile : How to assemble parts... ************************************************************************ * prtmsg.c : print a message on screen, local version #include <stdio.h> main (argc, argv) int argc; char *argv[]; char *message; if (argc!= 2)
10 90 Távoli eljáráshívás fprintf(sdterr, "usage: %s <message>\n", argv[0]); exit(1); message = argv[1]; if (!printmessage(message)) fprintf(stderr, "%s:couldn't print your message\n", argv[0]); exit(1); printf("message delivered!\n"); exit(0); * Print a message to screen. * Return a boolean indicating whether the message was actually printed. printmessage(msg) char *msg; fprintf(stdout, "%s\n", msg); return(1); ************************************************************************ * msg.x : RPC language source. Compile with rpcgen. * Remote message printing protocol program MESSAGEPROG Program name version MESSAGEVERS Version name int PRINTMESSAGE(string) = 1; 1st function declared = 1; Version number = 0x ; User defined Program number ************************************************************************* * msg_proc.c : implementation of the remote procedure "printmessage" * server side #include <stdio.h> #include <rpc/rpc.h> always needed #include "msg.h" msg.h generated by rpcgen * remote version of printmessage int *printmessage_1(msg) please note "_1"! char **msg; static int result; must be static! fprintf(stdout, "%s\n", *msg); result = 1; return (&result); return pointer ************************************************************************* * rprtmsg.c : remote version of prtmsg.c * client side #include <stdio.h> #include <rpc/rpc.h> #include "msg.h" main (argc, argv)
11 Távoli eljáráshívás 91 int char argc; *argv[]; CLIENT int char char *cl; *result; *server; *message; if (argc!= 3) fprintf(stderr, "usage: %s host message\n", argv[0]); exit(1); server = argv[1]; message = argv[2]; * Create client "handle" used for calling MESSAGEPROG on the server * designated on the command line. We tell the RPC package * to use the "tcp" protocol when contacting the server. cl = clnt_create(server, MESSAGEPROG, MESSAGEVERS, "tcp"); if (cl == NULL) * couldn't establish connection with server, * print error message and die. clnt_pcreateerror(server); exit(1); * Otherwise, call the remote procedure "printmessage" on the * server result = printmessage_1(&message, cl); * Remote procedure printmessage_1() is called exactly the * same way as it is declared in msg_proc.c, except * for the inserted handle as the second argument. if (result == NULL) * An error occurred while calling the server. * Print error message and die. clnt_perror(cl, server); exit(1); * OK, we successfully called the remote procedure. if (*result == 0) * Server was unable to print our message. * Print error message and die. fprintf(stderr, "%s: %s couldn't print your message\n", argv[0], server); exit(1); * The message got printed on the server printf("message delivered to %s\n", server); exit(0); ************************************************************************* # Makefile # Microsoft C 6.00 Compiler makefile. Run 'nmake' in its directory.
12 92 Távoli eljáráshívás # CC=cl BIN = rprtmsg.exe msg_serv.exe GEN = msg_cln.c msg_svc.c msg.h all: $(BIN) # Create server (msg_svc.c is generated by running 'rpcgen msg.x') msg_serv.exe: msg.h msg_proc.c msg_svc.c $(CC) -o $@ msg_proc.c msg_svc.c /link ssunrpc snetlib spc ssocket sdomain # Create client (msg_clnt.c is generated by running 'rpcgen msg.x') rprtmsg.exe: msg.h rprtmsg.c msg_clnt.c $(CC) -o $@ rprtmsg.c msg_clnt.c /link ssunrpc snetlib spc ssocket sdomain # We also need msg.h, created by 'rpcgen' msg.h: msg.x rpcgen msg.x #Clean up nicely clean: l:\tools\rm -los $(GEN) *.obj $(BIN) *********************************************************************** példaprogram: távoli gép idejének lekérdezése ********************************************************************* * Remote date service in RPC (gets date and time from another machine) * It contains: * date.x : RPC Language source. Compile with 'rpcgen date.x' * date_pro.c : RPC Server routines * rdate.c : RPC Client routines * Makefile : How to assemble parts in MS C ********************************************************************* ******************************************************************** * date.x - Specification of remote date and time service. * Define 2 procedures: * bin_date_1() returns the binary time and date (no arguments). * str_date_1() takes a binary time and returns a human-readable string. program DATE_PROG version DATE_VERS long BIN_DATE(void) = 1; procedure number = 1 string STR_DATE(long) = 2; procedure number = 2 = 1; version number = 1 = 0x ; program number = 0x , allowed * This RPC Language file defines the DATE_PROG server and client * function. * Data type declarations are similar to the C language * Server program (date_pro.c) has to implement functions: * long *bin_date_1() and char **str_date_1(bintime) * long *bintime; * This following code is an RPC Language example of a type definition * * typedef string str<128>; * the string itself * * * struct stringarray
13 Távoli eljáráshívás 93 * str ss<128>; * ; * * The following code is a constant definition * * const MAXSORTSIZE = 64; ******************************************************************** * date_pro.c - remote procedures; called by server stub. #include <rpc/rpc.h> standard RPC include file #include "date.h" this file is generated by rpcgen * Return the binary date and time. long * bin_date_1() static long timeval; must be static long time(); Unix function timeval = time((long *) 0); return(&timeval); * Convert a binary time and return a human readable string. char ** str_date_1(bintime) long *bintime; static char *ptr; must be static char *ctime(); Unix function ptr = ctime(bintime); convert to local time return(&ptr); return the address of pointer ******************************************************************** * rdate.c - client program for remote date service. #include <stdio.h> #include <rpc/rpc.h> standard RPC include file #include "date.h" this file is generated by rpcgen main(argc, argv) int argc; char *argv[]; CLIENT *cl; RPC handle char *server; long *lresult; return value from bin_date_1() char **sresult; return value from str_date_1() if (argc!= 2) fprintf(stderr, "usage: %s hostname\n", argv[0]); exit(1); server = argv[1]; * Create the client "handle."
14 94 Távoli eljáráshívás if ( (cl = clnt_create(server, DATE_PROG, DATE_VERS, "udp")) == NULL) * Couldn't establish connection with server. clnt_pcreateerror(server); exit(2); * First call the remote procedure "bin_date_1". * declared in rdate.x if ( (lresult = bin_date_1(null, cl)) == NULL) clnt_perror(cl, server); exit(3); printf("time on host %s = %ld\n", server, *lresult); * Now call the remote procedure "str_date_1". if ( (sresult = str_date_1(lresult, cl)) == NULL) clnt_perror(cl, server); exit(4); printf("time on host %s = %s", server, *sresult); clnt_destroy(cl); done with the handle exit(0); ******************************************************************** # Microsoft C 6.00 Makkefile Run 'nmake' in its directory # CC=cl BIN = date_svc.exe rdate.exe GEN = date_cln.c date_svc.c date.h all: $(BIN) #Create server date_svc.exe: date.h date_pro.c date_svc.c $(CC) -o $@ date_pro.c date_svc.c /link ssunrpc snetlib spc ssocket sdomain #Create client rdate.exe: date.h rdate.c date_cln.c $(CC) -o $@ rdate.c date_cln.c /link ssunrpc snetlib spc ssocket sdomain #Generate date.h date.h: date.x rpcgen date.x #Clean up nicely clean: c:\mks\rm -los $(GEN) *.obj $(BIN) ********************************************************************
Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja
Kommunikáció Folyamatok közötti kommunikáció Minden elosztott rendszer alapja Marshalling Alap primitívek Direkt, indirekt portok Blokkolás, nem blokkolás Pufferelés Megbízhatóság RPC Az RPC jellemzői
Kommunikáció. 3. előadás
Kommunikáció 3. előadás Kommunikáció A és B folyamatnak meg kell egyeznie a bitek jelentésében Szabályok protokollok ISO OSI Többrétegű protokollok előnyei Kapcsolat-orientált / kapcsolat nélküli Protokollrétegek
RPC Remote Procedure Call Távoli eljárás hívás
RPC Remote Procedure Call Távoli eljárás hívás Hagyományos eljáráshívás: Count = read (fd, buf, nbytes) Paraméterek átadásának a típusai: - Érték szerinti átadás - Referencia szerinti átadás - Másoló/visszatöltő
Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés
Tartalom D Szoftvertechnológia elıadás Architektúra D vs CORBA Példá 2 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is használatos (pl. vágólap) NetDDE NetBIOS
DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1
DCOM Áttekintés Miskolci Egyetem Általános Informatikai Tanszék DCOM /1 Mi a DCOM? DCOM: Distributed Component Object Model A Microsoft osztott objektum modellje Bináris együttmÿködési szabvány és annak
Programozás C++ -ban 2007/7
Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum
Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
Programozás C és C++ -ban
Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új
Socket programozás Példák
Socket programozás Példák Áttekintés Client Server socket socket bind connect Connection request listen accept Client / Server Session write read read write close EOF read close 3 Select demo Beej s guide
Programozás 6. Dr. Iványi Péter
Programozás 6. Dr. Iványi Péter 1 Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak
A C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
A C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
Programozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -
VTP Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW2 SW3 2 Alap konfiguráció SW1-2-3 conf t interface e1/0 switchport trunk encapsulation dot1q switchport mode trunk vtp domain CCIE vtp mode transparent vtp
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. május 6. Parancssori paraméterek Parancssorban történ programindításkor a program nevét követ en szóközökkel elválasztva paraméterek (command
Számítógépes Hálózatok GY 3-4.hét
Számítógépes Hálózatok GY 3-4.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu 1 Teszt canvas.elte.hu Kód:
Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet
HTTP Hálózat Rétegezett architektúra felhasználók Alkalmazási Web, e-mail, file transfer,... Szállítási Internet Hálózat-elérési Végponttól végpontig terjedő átvitel, Megbízható átvitel, sorrendbe állítás,
Tartalom. Történeti áttekintés. Történeti áttekintés 2011.03.23. Architektúra DCOM vs CORBA. Szoftvertechnológia
Tartalom D Szoftvertechnológia előadás Történeti áttekintés Architektúra D vs CORBA 2 Történeti áttekintés 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is
Programozás C++ -ban
Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több
CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék
CORBA Áttekintés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 10. 15. Mi a CORBA? osztott objektum modell szabvány, amely definiálja a komponensek közötti interface-eket definiál
Programozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)
2017/01/27 08:59 1/6 Gettext Rendszer
2017/01/27 08:59 1/6 Gettext Rendszer < Linux Gettext Rendszer A gettext rendszer a programok nemzetközivé tételét valósítják meg. A programozónak a programot egy nyelven kell megírnia, a gettext rendszer
Konkurens TCP Szerver
A gyakorlat célja: Konkurens TCP Szerver Megismerkedni a párhuzamos programozás és a konkurens TCP szerver készítésének az elméleti és gyakorlati alapjaival és egy egyidejűleg több klienst is kiszolgáló
Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék
Osztott rendszerek (Distributed systems) Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 09. 18. osztottrendszerek / 1 Tartalom Miért kellenek osztott rendszerek Egy kis
Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.
Alap protokollok NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás. SMB: NetBT fölötti főleg fájl- és nyomtató megosztás, de named pipes, mailslots, egyebek is. CIFS:ugyanaz mint az SMB,
UNIX folyamatok kommunikációja
UNIX folyamatok kommunikációja kiegészítő fóliák az előadásokhoz Mészáros Tamás http://www.mit.bme.hu/~meszaros/ Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
C++ programok fordítása
C++, 1/ 33 C++ programok fordítása Pataki Norbert 2012. február 24. C++, 2/ 33 Információk Pataki Norbert, patakino@elte.hu http://patakino.web.elte.hu/levelezo Jegy: gyakorlat, Szűgyi Zalán C++, 3/ 33
Adatbázis-kezelés ODBC driverrel
ADATBÁZIS-KEZELÉS ODBC DRIVERREL... 1 ODBC: OPEN DATABASE CONNECTIVITY (NYÍLT ADATBÁZIS KAPCSOLÁS)... 1 AZ ODBC FELÉPÍTÉSE... 2 ADATBÁZIS REGISZTRÁCIÓ... 2 PROJEKT LÉTREHOZÁSA... 3 A GENERÁLT PROJEKT FELÉPÍTÉSE...
Nagios NSCA Indirect Monitoring, Passive Check
Nagios NSCA Indirect Monitoring, Passive Check NSCA passzív monitoring Az NSCA-val végrehajtott passive check monitoringnak a lényege az ábrán jól látszódik. A központi Nagios nem küld (aktív) check parancsokat,
UNIX: folyamatok kommunikációja
UNIX: folyamatok kommunikációja kiegészítő fóliák az előadásokhoz Mészáros Tamás http://home.mit.bme.hu/~meszaros/ Budapesti Műszaki Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 A kommunikáció
Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék
Simon Balázs (sbalazs@iit.bme.hu) Dr. Goldschmidt Balázs Dr. Kondorosi Károly BME, Irányítástechnika és Informatika Tanszék Webszolgáltatások, WS-* szabványok WS-* implementációs architektúra Célkitűzés:
Using the CW-Net in a user defined IP network
Using the CW-Net in a user defined IP network Data transmission and device control through IP platform CW-Net Basically, CableWorld's CW-Net operates in the 10.123.13.xxx IP address range. User Defined
Számítógép-hálózatok: 4. Labor. TCP kliens. A gyakorlat célja:
TCP kliens A gyakorlat célja: TCP kliens alkalmazás írásának az elsajátítása TCP protokoll tulajdonságainak a tanulmányozása Elméleti bevezető: TCP tulajdonságai: A TCP az UDP-vel ellentétben egy összeköttés
Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész
3. előadás Protokollok Kommunikáció 2. rész RPC (Remote Procedure Call) távoli eljáráshívás RMI (Remote Method Invocation) távoli metódushívás MOM (Message-Oriented Middleware) üzenetorientált köztesréteg
Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza. A C nyelvű programokban gyakran használják a
Szoftvergyártás: gyártásvezérlés kód-figyeléssel
Szoftvergyártás: gyártásvezérlés kód-figyeléssel Előadó: Banai Miklós és Rakyta Péter Pályázatok: TECH_08-A2/2-2008-0089-SZOMIN08; KMOP-1.1.1-08/1-2008-0019; KMOP-1.1.2-08/1-2008-0002 Vízió: Szoftvergyártás
Segédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java
Osztott rendszerek (Distributed
Osztott rendszerek (Distributed systems) Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 09. 18. osztottrendszerek / 1 Tartalom Miért kellenek osztott rendszerek Egy kis
1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7
1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7 1.1. Új virtuális gép és Windows Server 2008 R2 Enterprise alap lemez létrehozása 1.2. A differenciális lemezek és a két új virtuális
EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA
EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA Iványi Tibor, ivanyit@tigris.klte.hu Csukás Levente, csukasl@fox.klte.hu Kossuth Lajos Tudományegyetem Informatikai és Számító Központ Abstract The well
A C programozási nyelv VI. Parancssori argumentumok File kezelés
A C programozási nyelv VI. Parancssori argumentumok File kezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv VI. (Parancssori argumentum, file kezelés) CBEV6 / 1 Parancssori
1. Kapcsolók konfigurálása
1. Kapcsolók konfigurálása Üzemmódok: Felhasználói Privilegizált Globális konfigurációs váltás: enable (en), váltás: exit váltás: configure terminal (conf t), váltás: exit váltás: változó, váltás: exit,
Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE
Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor
Osztott alkalmazások fejlesztési technológiái Áttekintés
Osztott alkalmazások fejlesztési technológiái Áttekintés Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Történelem - a kezdetek 2 Mainframe-ek és terminálok Minden a központi gépen fut A
Java programozási nyelv 6. rész Java a gyakorlatban
Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék
Ethernet/IP címzés - gyakorlat
Ethernet/IP címzés - gyakorlat Moldován István moldovan@tmit.bme.hu BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM TÁVKÖZLÉSI ÉS MÉDIAINFORMATIKAI TANSZÉK Áttekintés Ethernet Multicast IP címzés (subnet)
C programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
Számítógépes Hálózatok GY 4.hét
Számítógépes Hálózatok GY 4.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu Teszt 10 kérdés 10 perc canvas.elte.hu
Mobil Informatikai Rendszerek
Mobil Informatikai Rendszerek Android NDK Native Development Kit 2016. november 27. Sicz-Mesziár János sicz- m e s z i a r. j a n o s @ nik.uni - obuda.hu NDK Native Development Kit Egy set of tools, amely
A C programozási nyelv V. Struktúra Dinamikus memóriakezelés
A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.
Programozás alapjai. 10. előadás
10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:
C programozás. 6 óra Függvények, függvényszerű makrók, globális és
C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,
Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft
Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül
Szövegek C++ -ban, a string osztály
Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string
Dr. Schuster György október 14.
Real-time operációs rendszerek RTOS 2011. október 14. A fordítás vázlata prog.c Előfeldolgozó Átmenti állomány Fordító prog.obj más.obj-tek könyvtárak indító kód Linker futtatható kód Ismétlés Előfeldolgozó
Bevezetés, a C++ osztályok. Pere László
Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK
Széchenyi István Egyetem www.sze.hu/~herno
Oldal: 1/6 A feladat során megismerkedünk a C# és a LabVIEW összekapcsolásának egy lehetőségével, pontosabban nagyon egyszerű C#- ban írt kódból fordítunk DLL-t, amit meghívunk LabVIEW-ból. Az eljárás
Az adatszolgáltatási rendszer kliens felülete
Az adatszolgáltatási rendszer kliens felülete Budapest, 1999. május 21. BÉT projekt AZ ADATSZOLGÁLTATÁSI RENDSZER KLIENS FELÜLETE AZONOSÍTÁSA A adatszolgáltatási rendszer kliens felülete 20 számozott lapot
Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft
Java-ról Kotlinra Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Java és Kotlin kapcsolata Hogyan próbálhatjuk ki? Kotlin kultúra kialakítása cégen belül Milyen a Kotlin a Java-hoz képest? Történet
Programozás C++ -ban 2007/1
Programozás C++ -ban 2007/1 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó
Előnyei. Helyi hálózatok tervezése és üzemeltetése 2
VPN Virtual Private Network A virtuális magánhálózat az Interneten keresztül kiépített titkosított csatorna. http://computer.howstuffworks.com/vpn.htm Helyi hálózatok tervezése és üzemeltetése 1 Előnyei
Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network
Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network Table of Contents Windows 7... 2 Windows 8... 6 Windows Phone... 11 Android... 12 iphone... 14 Linux (Debian)... 20 Sebők Márton
BackupPC. Az /etc/hosts fájlba betehetjük a hosztokat, ha nem a tejles (fqdn, DNS név) névvel hivatkozunk rájuk: # /etc/hosts #... 192.168.1.
BackupPC Bevezető A BackupPC számítógépek (szerver és munkaállomások) mentését megvalósító szoftver. Legfontosabb jellemzője, hogy távoli mentést alkalmaz smb, ftp, ssh/rsync segítségével. A szoftver perl
Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r
Programozás I. Széchenyi István Egyetem, Gy r 2014. november 16. Áttekintés kel kapcsolatos fogalmak deklaráció Több, kompatibilis változat is elképzelhet. Meg kell el znie a fv. hívását. Mindenképp rögzíti
SZÁMÍTÓGÉP HÁLÓZATOK BEADANDÓ ESSZÉ. A Windows névfeloldási szolgáltatásai
SZÁMÍTÓGÉP HÁLÓZATOK BEADANDÓ ESSZÉ A Windows névfeloldási szolgáltatásai Jaszper Ildikó jaszper.ildiko@stud.u-szeged.hu Jaszper.Ildiko@posta.hu Budapest, 2007. május 19. - 1 - TARTALOMJEGYZÉK 1. Névfeloldás...
Programozás I. 5. Előadás: Függvények
Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény
CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )
Célok: a Java DB adatbázis-kezelő rendszer használatának ismertetése, adatbázisok használata Java alkalmazásokban - kétrétegű architektúra, egyszerű kliens-szerver architektúra használata hálózati alkalmazásokhoz.
Kifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;
Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:
Operációs rendszerek MS Windows NT (2000) folyamatok Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: szálak ütemezése végrehajtásra
Programozás alapjai 2.Gy: A C nyelv alapjai P R O
Programozás alapjai 2.Gy: A C nyelv alapjai. P R O A L A G 1/32 B ITv: MAN 2018.10.02 Code::Blocks Indítsa el mindenki! 2/32 1 Code::Blocks Új projekt 2 3 4 5 3/32 Code::Blocks Forráskód Kód fordítása:
Programozás 5. Dr. Iványi Péter
Programozás 5. Dr. Iványi Péter 1 Struktúra Véges számú különböző típusú, logikailag összetartozó változó együttese, amelyeket az egyszerű kezelhetőség érdekében gyűjtünk össze. Rekord-nak felel meg struct
Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte.
Programozási alapismeretek :: beadandó feladat Készítő adatai Név: Molnár Tamás EHA: MOTIABT.ELTE E-mail cím: motiabt@inf.elte.hu Gyakorlatvezető: Horváth László Feladat sorszáma: 23. Felhasználói dokumentáció
Számítógépes Hálózatok. 4. gyakorlat
Számítógépes Hálózatok 4. gyakorlat Teszt canvas.elte.hu Számítógépes Hálózatok Gyakorlat 2 TCP Számítógépes Hálózatok Gyakorlat 3 TCP socket() bind() listen() accept() sock = socket.socket(socket.af_inet,
Ellenőrző lista. 2. Hálózati útvonal beállítások, kapcsolatok, névfeloldások ellenőrzése: WebEC és BKPR URL-k kliensről történő ellenőrzése.
Ellenőrző lista 1. HW/SW rendszer követelmények meglétének ellenőrzése: A telepítési segédlet által megjelölt elemek meglétének, helyes üzemének ellenőrzése. 2. Hálózati útvonal beállítások, kapcsolatok,
SAMBA. Forrás: Lajber Zoltán: SAMBA alapok dia, SZIE
Forrás: Lajber Zoltán: SAMBA alapok dia, SZIE https://www.samba.org Mi a SAMBA? Windows "Fájl és nyomtatómegosztás", illetve a "Microsoft Networks Kliens" szolgáltatásokat tartalmazó szoftvercsomag. NETBIOS
Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen
Osztott rendszerek Krizsán Zoltán 1 Ficsór Lajos 1 1 Általános Informatikai Tanszék Miskolci Egyetem Webalkalmazások fejlesztése tananyag Tartalom Bevezetés A múlt - történelem A jelen Denition Distributed
Számítógépes Hálózatok GY 8.hét
Számítógépes Hálózatok GY 8.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu Teszt 10 kérdés 10 perc canvas.elte.hu
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények Dr. Bécsi Tamás 6. Előadás Bevezetés Egy idő után az egyetlen main(){ függvénnyel megírt programunk túl nagy méretű lesz. Vannak
ROS Remote Operations Service
ROS Remote Operations Service Adamis Gusztáv (adamis@tmit.bme.hu) Réthy György (Gyorgy.Rethy@ericsson.com) Ziegler Gábor (gabor.ziegler@ericsson.com) 2015.03.13. Távközlési szoftverek 1 Példa: szendvicsautomata
Az internet ökoszisztémája és evolúciója. Gyakorlat 1
Az internet ökoszisztémája és evolúciója Gyakorlat 1 GNS3: installálás és konfiguráció GNS3: hálózatszimulátor Valódi router/hoszt image-ek hálózatba kapcsolása emulált linkeken keresztül: CISCO, Juniper,
Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M) 2003.04.29
Számítógép labor V. Egyszer Web szerver Dokumentáció (K4C03M) 2003.04.29 Egyszer Web szerver Feladat: Egyszer Web szerver Feladat sorszám: 17 Leírás: Készítsen egy egyszer Web szervert, amely képes statikus
Mobil Informatikai Rendszerek
Mobil Informatikai Rendszerek Android NDK Native Development Kit Sicz-Mesziár János sicz-mesziar.janos@nik.uni-obuda.hu Mezei József mezei.jozsef@nik.uni-obuda.hu 2018. április 22. NDK Native Development
1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3
Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás
Programozás alapjai. 7. előadás
7. előadás Wagner György Általános Informatikai Tanszék Jótanács (1) Tipikus hiba a feladat elkészítésekor: Jótanács (2) Szintén tipikus hiba: a file-ból való törléskor, illetve a file-nak új elemmel való
Programozás 1. Dr. Iványi Péter
Programozás 1. Dr. Iványi Péter 1 C nyelv B.W. Kernighan és D.M. Ritchie, 1978 The C Programming language 2 C nyelv Amerikai Szabványügy Hivatal (ANSI), 1983 X3J11 bizottság a C nyelv szabványosítására
T Á J É K O Z T A T Ó. A 1108INT számú nyomtatvány a http://www.nav.gov.hu webcímen a Letöltések Nyomtatványkitöltő programok fülön érhető el.
T Á J É K O Z T A T Ó A 1108INT számú nyomtatvány a http://www.nav.gov.hu webcímen a Letöltések Nyomtatványkitöltő programok fülön érhető el. A Nyomtatványkitöltő programok fület választva a megjelenő
Cloud computing. Cloud computing. Dr. Bakonyi Péter.
Cloud computing Cloud computing Dr. Bakonyi Péter. 1/24/2011 1/24/2011 Cloud computing 2 Cloud definició A cloud vagy felhő egy platform vagy infrastruktúra Az alkalmazások és szolgáltatások végrehajtására
Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán
Jelszavak helyes megválasztása, szótáras törés Pánczél Zoltán 1 Miért fontos a megfelelő jelszó? Nagyban növeli a rendszer biztonságát. Könnyű jelszó = Nincs jelszó A teljes rendszer biztonsága tőlünk
SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:
Számítógépes hálózatok
Számítógépes hálózatok 7. gyakorlat: SOCKET programozás (C) Gyakorlatvezető: Ács Zoltán Hatodik házi-feladat 1/2 ADAPTÍV FA Tekintsünk 16 állomást, melyek adaptív fabejárás protokollal visznek át csomagokat.
Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
S z á m í t ó g é p e s a l a p i s m e r e t e k
S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami
HÁLÓZATI BEÁLLÍTÁS. Videorögzítőkhöz
I BEÁLLÍTÁS Videorögzítőkhöz Kérjük olvassa át figyelmesen ezt az útmutatót a készülék használata előtt és tartsa meg jövőben felhasználás céljára. Fenntartjuk a jogot a kézikönyv tartalmának bármikor
Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.
Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Dinamikus memóriakezelés Dinamikus tömbök Dinamikus stringek Program kapcsolata a
UDP idő szerver. UDP protokollal kapcsolatos ismeretek elmélyítése. Egy UPP protokollt használó időszerver megvalósítása
UDP idő szerver A gyakorlat célja: UDP protokollal kapcsolatos ismeretek elmélyítése. Egy UPP protokollt használó időszerver megvalósítása Elméleti bevezető: UDP Protokoll föbb tulajdonságai: Az Internet
Informatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
Operációs rendszerek. Az NT folyamatok kezelése
Operációs rendszerek Az NT folyamatok kezelése Folyamatok logikai felépítése A folyamat modell: egy adott program kódját végrehajtó szál(ak)ból és, a szál(ak) által lefoglalt erőforrásokból állnak. Folyamatok
Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat
Megoldás Feladat 1. Statikus teszt Specifikáció felülvizsgálat A feladatban szereplő specifikáció eredeti, angol nyelvű változata egy létező eszköz leírása. Nem állítjuk, hogy az eredeti dokumentum jól
Programozás I. gyakorlat
Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt
9. MPI
9. MPI kertesz.gabor@nik.uni-obuda.hu MPI Message Passing Interface Elosztott memóriájú párhuzamos programozási API Gyk. folyamatok közötti kommunikáció de facto ipari standard Több száz előre definiált