(J\V]HU&NOLHQVV]HUYHUUHQGV]HUHN
|
|
- Virág Ballané
- 8 évvel ezelőtt
- Látták:
Átírás
1 (J\V]HU&NOLHQVV]HUYHUUHQGV]HUHN ALAPELVEK $]HORV]WRWWDONDOPD]iVRNHJ\LNFVRSRUWMiWDNpWUpWHJ&DONDOPD]iVRNDWNpSYLVHOLNDNOLHQV V]HUYHUUHQGV]HUHN,O\HQDONDOPD]iVRNNDOPiUIHOWpWHOH]KHWHQPLQGHQNLWDOiONR]RWWD]RQEDQ QHPIHOWpWOHQ OUHDOL]iOMDKRJ\DKDV]QiOWV]RIWYHULO\HQDODSRQP&N GLN$V]HUYHUNOLHQV UHQGV]HUHNUHiOWDOiQRVViJEDQMHOOHP]KRJ\D]HJ\LNDONDOPD]iVDV]HUYHUEL]RQ\RV V]ROJiOWDWiVRNDWYpJH]DNOLHQVNpUpVHLUHpVDNOLHQVIIHODGDWDH]HQNpUpVHNPHJIRJDOPD]iVD (összeállítása) és a kérdésre adott válaszok megjelenítése. Gondoljunk például az Internetes ZHEROGDODNUDDKRODNOLHQVV]iPtWJpSH]HQIXWDE QJpV]QNHJ\HJ\IiMOWNpUOHDQQDND] egész Internetes hálózaton egedi azonosítója, az URL, vag újabb szóhasználattal URI DODSMiQ(]WDIiMOWSRQWRVDEEDQDQQDN+70/Q\HOYHQNGROWIRUUiViWDPHJIHOHO ZHEV]HUYHUW ]HPHOWHWV]iPtWJpSIRJMDHON OGHQL%iUHJ\V]HU&V] YHJHVIiMOUOYDQV]H] D]RQEDQV]iPXQNUDV]LQWHpUWKHWHWOHQ$NOLHQVJpS QN QIXWE QJpV]SURJUDPYLV]RQW puwhoph]qlwxgmddngrndwpvdnpv]twmhv]iqgpndv]hulqwphjmhohqtwld]rogdow9dqqdnro\dq HVHWHNLVDKROQLQFVNGROiVLO\HQNRUDE QJpV]DNOLHQVLQWHOOLJHQFLiMiQP~OLNKRJ\ PHJKtYMDDPHJIHOHOROYDVSURJUDPRWSpOGiXO:RUGYDJ\PiVKDVRQO GRNXPHQWXPV]HUNHV]WpVPHJMHOHQtWVHDNpUWGRNXPHQWXPRW0LQGHQPiVHVHWEHQKDH]D] LQWHOOLJHQFLDQHPNHU OWEHpStWpVUHDE QJpV]DXWRPDWLNXVDQOHW OWpVUHNDSFVROpVD]85/ alapján azonosított fájl letöltését kínálja fel a kliensgépre. Innét már a felhasználó egéni G QWpVHKRJ\PLW UWpQLNDN YHWNH]NEHQDOHW OW WWiOORPiQQ\DOPLO\HQDONDOPD]iVW szoftvert használ az állomán megjelenítésére, megtekintésére.
2 0.1. ábra. Webszerver ábrája A fentebb vázolt felállás eg speciális kliens-szerver rendszer, ahol a rendszer két VV]HWHYMpQHNWHYpNHQ\VpJLN UHEiUNOLHQVEODNiUKiQ\OHKHWH]HNPLQGXJ\DQD]WNpSHVHN elvégezni - szigorúan meghatározott. Felmerül a logikus kérdés, vajon mire jó még ez az elosztott alkalmazás? Nilvánvaló, hog sok egéb célra is használható eg ilen elven IHOpStWHWWHORV]WRWWUHQGV]HUQp]] QNPHJHJ\NpWDYDOViJEDQLVOpWH]DONDOPD]iVW 3RQWRVLGV]HUYHU $],QWHUQHWHW ]HPHOWHWV]iPtWJpSHNHVHWpEHQUHQGNtY OIRQWRVKRJ\DJpSHNEHOVUiMD szinkronizálva legen és persze pontos is legen. Mindenki tudja, hog a karórákhoz képest a V]iPtWJpSHNEHOVUiLQDJ\RQSRQWDWODQRNWXGQDNOHQQLWHKiWDV]LQNURQL]iOiVFVDN~J\ YDOVtWKDWPHJKDHJ\JpSHWNLQHYH] QNLGV]HUYHUQHNpVUHQGV]HUUiMiWIRO\DPDWRVDQHJ\ N OVIRUUiVDODSMiQNRUULJiOMXNDW EELJpSSHGLJHJ\HJ\NOLHQVSURJUDPRWIXWWDWDPHO\ DGRWWYDJ\EHiOOtWRWWLGQNpQWOHNpUGH]LDSRQWRVLGWDV]HUYHUWO(J\LO\HQDONDOPD]iV QDJ\RQHJ\V]HU&OHKHWKLV]HQVHPPLPiVWQHPNHOOFVLQiOQLDNOLHQVQHNPLQWLGN ] QNpQWD szerverhez fordulni - ennek azonosítója persze beállítható, de akár önállóan meg is keresheti - pvhonpuqldsrqwrvlgwdpho\dodsmiqduhqgv]huehqohixwwdwhj\wlphv]hu&sdudqfvrwd
3 NDSRWWPHJIHOHOIRUPiUDKR]RWWLGDGDWWDO$SpOGiEOOiWKDWKRJ\DV]HUYHUpVDNOLHQV IHODGDWDOpQ\HJHVHQHOYiOLNHJ\PiVWODV]HUYHUPHJV]HU]LpVPHJIHOHOIRUPiEDKR]]DD kívánt adatot, míg a kliens ezt megkapva és paraméterként felhasználva eg operációs UHQGV]HUV]LQW&SDUDQFVRWDONDOPD]iVWIXWWDWOH.OLHQV LGRNRQYHU]LR6WULQJ7LPH LGREHDOOLWDV7LPHYRLG 3RQWRVLGR",GR6WULQJ 6]HUYHU LGROHNHUGH]HV6WULQJ 0.2iEUD3RQWRVLGV]HUYHUiEUiMD /HYHOH]V]HUYHU Feladatát mindenki ismeri a gakorlatból, ha lefuttatom a kliens alkalmazást, akkor a EHiOOtWRWWPDLOV]HUYHUD]RQRVtWSpOGiXOPDLOV]DPDONKXDODSMiQEL]RQ\RVHOOHQU]pVHNHW HOYpJH]YHD]RQRVtWMHOV]OHNpULDPHJIHOHOOHYHOH]OiGiEODEHpUNH]HWWOHYHOHNHWpV D]RNDWEHiOOtWiVWOI JJHQNLLVW U OWHWLDV]HUYHUUO Közös elemek A fenti két példa alapján már meg is fogalmazhatjuk, hog melek a közös elemei eg kliens- V]HUYHUUHQGV]HU&HORV]WRWWDONDOPD]iVQDN í azonosítani kell a szervert a hálózaton - erre a célra szolgál az URL - és ezt az azonosítót a kliens gépen futó alkalmazásnak tudnia kell, nélküle nem képes megtalálni a szervert; í kell eg közös kódrendszer, üzenet szerkezet, amel alapján a két számítógép megérti HJ\PiVWDOHJHJ\V]HU&EEHVHWEHQH]HJ\V]DEiO\RVV]HUNH]HW&NDUDNWHUVRUR]DWOHKHW í mind a szerver, mind a kliens oldali alkalmazásban olan elemek (objektumok) legenek, amelek a kapcsolódást és az üzenetváltást el tudják látni - pl. Socket osztál a Java nelvben. í PLYHO D V]HUYHU IRO\DPDWRVDQ ILJ\HO D EHpUNH] ]HQHWHNUH OHJHJ\V]HU&EE PHJYDOVtWiVD HJ\ YpJWHOHQ FLNOXV DPHO\EONLOpSpVFVDN D V]HUYHUW OHiOOtW VSHFLiOLV utasításra van;
4 Azonosítás, üzenetfogadás Az URL - Uniform Resource Locator 1 - vag az újabban használt URI - Uniform Resource Identifier 2 - tökéletesen egedi mutatót biztosít a teljes Interneten eg meghatározott HUIRUUiVKR]UHVRXUFH(]D]HUIRUUiVOHKHWHJ\V]HU&PLQWSpOGiXOHJ\IiMOYDJ\HJ\PDSSD de hivatkozhat eg bonolultabb objektumra is, mint például eg adatbázis lekérés vag eg NHUHVPRWRU(QQHNHOpUpVpUHDV]iPtWJpS,3FtPHV]ROJiODPLDQpYV]HUYHUHNEHQWiUROW LQIRUPiFLNDODSMiQHJ\pUWHOP&HQPHJIHOHOWHWKHWD]HJ\HVGRPpQQHYHNQHNWRYiEEiD doménon belül - ez általában eg könvtárnak felel meg az azonosított számítógépen - az HJ\HVDOPDSSiNpVYpJ ODIiMORNHJ\HGLQHYpEONpSH]] ND]85,W A névszerver vag domain névszerver (DNS) feladata, hog az adott hálózati szegmensen összekapcsolja a nevekkel jellemzett doméneket és a számítógépet azonosító IP címet. Kérésre - ismét eg szerver! - megmondja, hog a NHUHVHWWQHY&GRPpQPHO\LNJpSHQDQQDNPHO\LNN Q\YWiUiWONLLQGXOYDWDOiOKDWPHJ2UV]iJRQNpQWKLHUDUFKLNXV felépítésben helezkednek el a névszerverek, uganakkor bárki telepíthet névszervert a saját gépére. Természetesen D],QWHUQHWHVIRUJDORPFtPIHOROGiViWYpJ]QpYV]HUYHUHNLVPHULNHJ\PiVWpVDKiO]DWRQHJ\PiVVDONRPPXQLNiOYD képesek végül a fizikai címet megadni. Eg számítógép több szervert is futtathat, bizonos határok között akárhán szervert, ameleket egmástól a port (azaz kapu) különböztet meg. A port azonosító biztosítja, hog az ]HQHWDPHJIHOHOV]HUYHUKH]MXVVRQHODV]iPtWJpSHQ$V]iPtWJpSHVV]DNQ\HOYEHQ démonnak nevezik azokat az alkalmazásokat, amelek eg-eg porton figelve fogadják a EHpUNH]NpUpVHNHW ]HQHWHNHW(]pUWD]HJ\HVV]HUYHUROGDOLDONDOPD]iVRNNDSFVRODWWDUW részét is démonnak nevezzük. Ha beletekintünk valamel alkalmazás bin vag lib N Q\YWiUiEDpVRWWGUHYpJ]GSURJUDPIiMOWWDOiOXQNDNNRUQDJ\YDOV]tQ&VpJJHO PHJWDOiOWXNDNDSFVRODWWDUWiVpUWIHOHOVHOHPHWSpOGiXOP\VTOGD0\64/DGDWEi]LVNH]HO kapcsolattartó démonja és httpd a http kéréseket fogadó webszerver (Apache) démonja. $PLQW H]W IHOWpWHOH]KHWHQ PiU WDSDV]WDODWEO WXGMD D],3 FtP WHWV]pV V]HULQW EHiOOtWKDW $ V]iPtWJpSHN PHJN O QE ]WHWKHWVpJpWDIL]LNDLV]LQWHQDKiO]DWLNiUW\iQDNDJ\iUWN iowdo JDUDQWiOW HJ\HGL D]RQRVtWV]iPD (hardware address vag rövidítve HW Address) biztosítja. Íg például a 00:0C:76:94:A9:0E hexadecimális számmal D]RQRVtWRWWKiO]DWLNiUW\DD],QWHUQHWHQD,3FtPPHOUHQGHONH]V]iPtWJpSEHQWDOiOKDWDMHJ\]HW tuiviqdnlgsrqwmiedq(eeod]iootwiveod]lvn YHWNH]LNSHUV]HKRJ\DKiO]DWLNiUW\DJ\iUWNVHKROH]HQD) OG Q QHPJ\iUWKDWQDNNpWD]RQRV+:$GGUHVVpUWpNNHOUHQGHONH]DONDWUpV]WpVSHUV]HIRO\DPDWRVDQNRPPXQLNiOQLXN NHOO PHJHJ\H]YH HJ\PiV N ] WW D IHOKDV]QiODQG D]RQRVtWV]iPRN WDUWRPiQ\DLUO%YHQ YDQ WDUWDOpN PHUW D hexadecimális elrendezés miatt darab, azaz kereken milliárd egedi hálózati kárta gártható le. Vessük össze ezt a Föld jelenlegi lakosságával, ami ma 6 milliárd ember! $],3FtPSHUV]H FVDNDNNRUW OWLEHIHODGDWiWKDYDOEDQHJ\HGLpVNLWXGMXNV]&UQLD]HPEHULWpYHGpVWWHKiW OHKHWOHJQHDV]iPtWJpSNH]HOMHiOOtWJDVVD$FpOD]KRJ\HJ\HJ\V]ROJiOWDWLDOKiO]DWRQEHO OJpSLPHJROGiVVDO biztosítsuk az egediséget. Ezt a szerepet töltik be a DHCP alapú rendszerek, ahol a kiosztást a DHCP szerver végzi és tartja nilván, ez a szoftvereszköz tartja nilván a már kiosztott címeket és ezek fizikai azonosításához feljegzi a kérdéses gép hardvercímét is a saját adatbázisában
5 GYAKORLATI MEGVALÓSÍTÁS A Java nelvet és annak fejlesztési elveit, alkalmazási területeit ismerve biztosak lehetünk DEEDQKRJ\NOLHQVV]HUYHUDONDOPD]iVRNDWPiUVRNDQNpV]tWHWWHNpVH]pUWIHOWpWHOH]KHWHQ vannak már kész eszközök eg ilen típusú alkalmazás megvalósításához. Vizsgáljuk meg WHKiWHOV] ULVKRJ\D-DYDQ\HOYPLO\HQHV]N ] NHWNtQiOIHOV]iPXQNUDPLO\HQNpV] osztálokból tudjuk összeépíteni a kívánt rendszert. A Java dokumentáció tartalmazza az alábbi ábrát is, és ennek alapján már elindíthatjuk a keresésünket ábra. Java 2 platform (J2SE v. 1.4) csomagszerkezete A Java SDK úgnevezett Core API csomagjai között találjuk a Networkig csomagot, azon belül a java.net csomagot és ennek osztálai biztosítják számunkra az összes eszközt alkalmazásunk felépítésére. Vizsgáljuk meg a számunkra legfontosabb három osztál IHOpStWpVpWP&N GpVpW SERVERSOCKET OSZTÁLY Csomag: java.net Deklaráció: public class ServerSocket. ]YHWOHQVjava.lang.Object
6 A ServerSocket osztál példána szerver oldali kapcsolóelemet, kapcsolódási pontot 3 (socket) KR]OpWUH$NDSFVROGiVLSRQWDKiO]DWRQiWpUNH]NpUpVHNUHYiUpVDNpUpVDODSMiQEL]RQ\RV WHYpNHQ\VpJHNHWYpJH]PDMGOHKHWVpJHWEL]WRVtWDUUDKRJ\DYiODV]YLVV]DNHU OM QDNpUGpVW IHOWHYK ])RQWRVPHJMHJ\H]QLKRJ\DV]HUYHUROGDOLNDSFVROGiVLSRQWPXQNiMiW ténlegesen a SocketImpl osztál eg példána végzi. Eg alkalmazásban megváltoztathatjuk a kapcsolóelemet létrehozó programrészletet (factor) - amel a példánosítást végzi - ol PGRQKRJ\DKHO\LW&]IDOQDNPHJIHOHONRQILJXUiFLM~NDSFVROHOHPHNHWKR]]RQOpWUH 0H]N private boolean created private boolean bound private boolean closed private SocketImpl impl $]HOVKiURPPH]DNDSFVROHOHPiOODSRWiWWiUROMDD]D]OpWUHKR]iVWSRUWKR]N WGpVW pvoh]iuivwptjdqhj\hglnph]dwpq\ohjhvwhypnhq\vpjhwypj]socketimpl típusú objektum referenciája. Konstruktorok ServerSocket() ServerSocket(int port) ServerSocket(int port, int backlog) ServerSocket(int port, int backlog, InetAddress bindaddr) $QpJ\NRQVWUXNWRUDQpJ\ N O QE ]OpWUHKR]KDWREMHNWXPpUWIHOHO$]HOVHVHWEHQ HJ\N WGpVpVPLQGHQIpOHHJ\pEPHJN WpVQpON OLREMHNWXPRWKR]XQNOpWUHDPiVRGLN esetben már megadjuk, hog melik port-hoz kapcsolódik az objektum, a backlog változó beállítja a felsorakoztatható üzenetek, kérések számát (az objektum addig fogad új kérést, míg ezt a beállított számot el nem éri, ez alapértelmezetten 50 kérés), és a bindaddryiowr]ydoqhypqhnpvwtsxviqdnphjihohohqd]wd],3ftphwdgkdwmxnphj DPHO\FtPHQV]iPtWJpSHQDV]HUYHUNDSFVROHOHPHOpUKHW7HUPpV]HWHVHQD],3FtP megadható a doménnévvel is, a címfeloldást a területileg illetékes DNS szerver végzi majd. Fontosabb metódusok $KRJ\HUUOPiUNRUiEEDQV]YROWDWpQ\OHJHVPXQNiWDSocketImpl osztál példána végzi. ËJ\DPHWGXVRNHJ\UpV]HHQQHNOpWUHKR]iViWDN O QE ]KHO\]HWHNEHQV] NVpJHV módosításokat hivatott intézni. A ServerSocket objektum használata során az esetek 3 A socket szó valójában - nagon jó képi megközelítéssel - eg foglalatot, aljzatot jelent, mint amelet az elektromos kapcsolatok létrehozásánál használunk. Minteg "összedugjuk" a klienst és a szervert az aljzaton keresztül.
7 többségében az accept() metódus meghívásával eg Socket objektumot hozunk létre és a további tevékenséget már ez végzi. void createimpl() throws SocketException Hibakezeléssel kiegészítve, a setimpl() metóduson keresztül létrehozza a Socket objektumot. private void setimpl() Amenniben az alkalmazás speciális kapcsolóelemek létrehozását igénli, a factor objektum segítségével ezen a metóduson keresztül beállíthatjuk a kapcsolóelem tulajdonságait. SocketImpl getimpl() throws SocketException A SocketImpl osztál kódját hozzákapcsolja ehhez a kapcsolóelemhez, amenniben ez még nem létezik, létre is hozza a SocketImpl objektumot. public Socket accept() throws IOException $PHWGXVD]DGRWWNDSFVROHOHPKH]W UWpQNDSFVROGiVWILJ\HOLpVDPHQQ\LEHQLO\HQ történik, azt elfogadja. A kapcsolódásig a metódus blokkol. Létrehoz eg új általános kapcsolóelem objektumot (Socket socket) és amenniben a rendszerben van biztonsági menedzser (SecuritManager), annak checkaccept() metódusát hívja meg a frissiben létrehozott objektum socket.getinetaddress().gethostaddress() kódjával és a socket.getport() NGMiYDO PLQW SDUDPpWHUHNNHO KRJ\ HOOHQUL]]H YDMRQ D P&YHOHW HQJHGpO\H]HWWH $PHQQ\LEHQ QHP EL]WRQViJL NLYpWHO NHOHWNH]LN pv D P&YHOHWHWQHPKDMWMDYpJUH 0iV NLYpWHOHN LV NHOHWNH]KHWQHN D] HOOHQU]pV VRUiQ DPHO\HN IHOVRUROiViWO LWW PRVW eltekintünk. 4 public InetAddress getinetaddress() Visszaadja az aktuális szerver kapcsolóelem lokális címét, azaz azt a címet, amelhez a NDSFVROHOHP N WGLN $PHQQ\LEHQ D NDSFVROHOHP QHP N WGLN VHKRYD VHP D visszaadott érték null. public String tostring() Visszaadja a kapcsolóelem létrehozásához megadott címet és portszámot string formájában. public void close() throws IOException Lezárja a kapcsolatot. Amenniben a kapcsolathoz kommunikációs csatorna is hozzá van rendelve, azt is lezárja. 4$-DYDGRNXPHQWiFLMDYDGRFVYDJ\HJ\V]HU&HQGRFVOHW OWKHWD OWpVpVNLFVRPDJROiVXWiQDNpUGpVHV információ (feltéve, hog a teljes anagot eg javadocs mappába tömörítettük ki közvetlenül a C meghajtón) a C:\javadocs\api\java\net\ServerSocket.html fájlban lesznek megtalálhatók. A java.net csomag a teljes GRNXPHQWiFLQHWZRUNLQJEORNNMiEDQOHOKHWIHO
8 SOCKET OSZTÁLY Csomag: java.net Deklaráció: public class Socket. ]YHWOHQVjava.lang.Object A SocketRV]WiO\NOLHQVNDSFVROHOHPHNHWKR]OpWUHH]HNHWHJ\V]HU&HQFVDN kapcsolóelemeknek is hívhatjuk. Mind a kimenet, mind a bemenet szabálozására képes, azaz HJ\V]HU&NpWLUiQ\~IRUJDOPDWYDOVtWPHJ$NDSFVROHOHPOpQ\HJpEHQHJ\HJ\ kommunikációs végpont két számítógép között, de amenniben a kliens-szerver rendszer XJ\DQD]RQV]iPtWJpSHQNHU OPHJYDOVtWiVUDDP&N GpV NWRYiEEUDLVKiO]DWRVDODSRQ meg, mintha a két gép közötti link kábel nulla hosszúságú lenne. A kapcsolóelem munkáját valójában a SocketImpl osztál példána látja el, a ServerSocket esetében már megismert módon. Ezért itt is igaz, hog eg alkalmazásban megváltoztathatjuk a kapcsolóelemet létrehozó programrészletet (factor) - amel a példánosítást végzi - ol módon, hog a KHO\LW&]IDOQDNPHJIHOHONRQILJXUiFLM~NDSFVROHOHPHNHWKR]]RQOpWUH 0H]N private boolean created private boolean bound private boolean connected private boolean closed private boolean shutin private boolean shutout SocketImpl impl $]HOVKDWPH]DNDSFVROHOHPiOODSRWiWWiUROMDD]D]OpWUHKR]iVWSRUWKR]N WGpVWpV NDSFVRODWIHQQiOOiViW OH]iUiVW PtJ D] XWROV PH] D WpQ\OHJHV WHYpNHQ\VpJHW YpJ] SocketImpl típusú objektum referenciája. A shutin és shutout logikai változók az input és az output állapotának jelzésére szolgálnak, amenniben értékük true ezek már OH]iUWQDNWHNLQWKHWN Konstruktorok A konstruktorok nagmértékben hasonlítanak a ServerSocket osztálnál már megismertekre, KLV]HQDIXQNFLNLVMHOHQWVPpUWpNEHQKDVRQON,WWPRVWFVDNDIRQWRVDEEDNDWVRUROMXNIHO public Socket() $UHQGV]HUDODSpUWHOPH]pVpQHNPHJIHOHOSocketImpl típus alapján kapcsolódás nélküli kapcsolóelemet hoz létre. public Socket(String host, int port) throws UnknownHostException, IOException Létrehoz eg folam (stream) kapcsolóelemet és a megadott számmal azonosított porthoz kapcsolja a megnevezett gazdagépen. Amenniben az alkalmazás
9 meghatározott eg server socket factor-t, akkor annak createsocketimpl() metódusát hívja meg az aktuális kapcsolóelem példán létrehozásához, egébként HJ\V]HU&NDSFVROHOHPHWKR]OpWUH$EL]WRQViJLHOHPHNHWXJ\DQ~J\YHV]LILJ\HOHPEH mint a ServerSocket osztál esetében. public Socket(InetAddress address, int port) throws IOException Létrehoz eg folam (stream) kapcsolóelemet és a megadott számmal azonosított porthoz kapcsolja a megadott IP címen. public Socket(String host, int port, InetAddress localaddr, int localport) throws IOException Létrehoz eg kapcsolóelemet és a megadott távoli gazdagéphez kapcsolja a megadott távoli porton keresztül. A kapcsolóelem uganakkor kapcsolatot hoz létre a megadott heli címhez és porthoz. public Socket(String host, int port, boolean stream) throws IOException Létrehoz eg folam (stream) kapcsolóelemet és a megadott számmal azonosított porthoz rendeli a megnevezett gazdagépen. Amenniben a stream paraméter true értéket kap, a létrehozott kapcsolóelem folam típusú, ha azonban ennek értéke false, eg datagram típusú kapcsolóelem jön létre. Felmerülhet a kérdés, mi a különbség a két kommunikációs mód között, melik a jobb. Mint anni más esetben, természetesen itt sincs abszolút igazság, attól függ, hog mit akarunk csinálni. Míg a datagram egszeri adatcsomag, DIRO\DPVWUHDPNDSFVRODWKR]IHQQNHOOWDUWDQLDNDSFVRODWRW KX]DPRVDEE LGHLJ(EEO N YHWNH]LN KRJ\ U YLG ]HQHWHNHVHWpQDIRO\DPWtSXV~NDSFVRODWIHOpStWpVHpVOHERQWiVDVRNNDOW EELGWYHKHWHOPLQWD] ]HQHWWRYiEEtWiV PDJDtJ\QHPJD]GDViJRV$PiVLNV]iPtWiVEDYHHQGWpQ\YLV]RQWDIRO\DPWtSXV~NDSFVRODWPHJEt]KDWViJD Metódusok - kapcsolatot létrehozó metódusok A Socket létrehozásának menete lénegében megegezik a ServerSocketnél leírtakkal, íg V]iPRVEHiOOtWpVOHNpUGH]PHWGXVLVPHJIHOHOD]RWWPHJLVPHUWQHN$]DOiEELDNEDQFVDN QpKiQ\IRQWRVDEEHOWpUPHWGXVWLVPHUWHW QN public void connect(socketaddress endpoint, int timeout) $ OpWUHM WW NDSFVROHOHPHW D V]HUYHUKH] NDSFVROMD D PHJDGRWW LGN V] E puwpnnho $PHQQ\LEHQLWW]pUpUWpNHWDGXQNPHJH]PHJKDWiUR]DWODQLGN V] E WMHOHQWD]D]D kapcsolat blokkol, míg létre nem jön vag hiba keletkezik. public void bind(socketaddress bindpoint) A kapcsolóelemet heli címhez köti. Metódusok - információt szolgáltató és beállító metódusok Ezek segítségével kapunk információt a heli és a kapcsolódáshoz felhasznált távoli IP FtPUODSRUWD]RQRVtWV]iPUOpVDEHiOOtWPHWGXVRNiOOtWMiNDSocketREMHNWXPPH]LWLV 0&N GpV NUpV]OHWHLWD6RFNHWMDYDRV]WiO\IRUUiVNGMiEDQWDQXOPiQ\R]KDWMXNH]DOHW OW WW JDK kibontása után, annak könvtárában, az src.zip állománban található meg. Az
10 RV]WiO\KLHUDUFKLiQDNPHJIHOHOHQH]HQEHO OLVDMDYDPDSSDQHWN Q\YWiUiEDQWDOiOMXND csomag forrásfájljait. public InputStream getinputstream() public OutputStream getoutputstream() (]DNpWPHWGXVDGHNODUiFLMXNQDNPHJIHOHOHQDV]iPXQNUDOHJIRQWRVDEEDGDWRNDWD NLpVEHPHQNDUDNWHUVRUR]DWRWDGMDYLVV]D,WWWDOiOMXNPHJYDOMiEDQD] ]HQHWHWpVD] arra küldött választ is. 0HWGXVRNDSXIIHUWiOOtWpVOHNpUGH]PHWGXVRN public snchronized void setsendbuffersize(int size) public snchronized int getsendbuffersize() public snchronized void setreceivebuffersize(int size) public snchronized int getreceivebuffersize() Mindkét beállító metódus esetében a SocketOptions interfész konstansait állítjuk be a SocketImpl osztálon keresztül. A fogadó puffer esetében a SO_RCVBUF D NLPHQ puffer esetében a SO_SNDBUF értékét állítjuk. )HODGDW +R]]XQN OpWUH HJ\ QDJ\RQ HJ\V]HU& 6HUYHU6RFNHW SpOGiQ\W pv tudvvxn NL D] DNWXiOLV SDUDPpWHUHLW(KKH]D]RQEDQPHJNHOOtUQLD]WPHJV]OtWNOLHQVROGDOL6RFNHWSpOGiQ\NGMiWLV mert a szerver csak a kapcsolat létrejöttekor, annak elfogadásakor hozza létre a kommunikációt biztosító saját Socket példánát. Fordítsuk le mindkét forráskódot és a két programot egmástól I JJHWOHQ ON O QYLUWXiOLVJpSSHOIXWWDVVXN(OVQHNDV]HUYHUWNHOOHOLQGtWDQLXWiQDDNOLHQVW )RUGtWiV$IRUUiVNGRWSDUDQFVVRURVIHO OHWUOLVIRUGtWKDWMXNHKKH]V] NVpJHVKRJ\D FRPSLOHUMDYDFH[HHOpUKHWOHJ\HQD'26SDWKEOD]D]DSDWKYiOWR]EDQOHJ\HQEHQQHD]D könvtár, amelben a program megtalálható. Jelen esetben ez a c:\j2sdk1.4.2\bin könvtár. Ebben az esetben bárhonnan indíthatjuk a javac.exe-t, de természetesen teljes elérési utat kell megadni a forrásfájlhoz. A lefordított class állomán megtalálható lesz uganabban a könvtárban. A futtatás parancs kiadása már eg kicsit bonolultabb. A java.exe uganis alapértelmezetten csak eg paramétert (a futtatandó osztál nevét) és nem állománt vár, de persze az osztált WDUWDOPD]IiMON Q\YWiUiWLVPHJNHOODGQXQN(EEOSHUV]HD]LVN YHWNH]LNKRJ\HJ\ N Q\YWiUEDQQHPOHKHWNpWD]RQRVQHY&RV]WiO\PHUWDMDYDH[HQHPWXGN O QEVpJHWWHQQL közöttük. ËJ\DSDUDQFVKHO\HVPHJDGiVDDN YHWNH] java -cp könvtárnév osztálnév Ez ebben az esetben a java -cp c:\javaprog\medzi AlapServer parancs lesz. Forráskód AlapServer.java import java.io.*; import java.net.*; class AlapServer {
11 public static void main(string[] args) { Sstem.out.println("AlapServer elindult"); tr { // a szerver objektumok létrehozása, kapcsolat elfogadás ServerSocket ss = new ServerSocket(8008); Socket in = ss.accept(); // kapcsolat adatai Sstem.out.println("IP cim: " + in.getinetaddress()); Sstem.out.println("port szama: " + in.getlocalport()); Sstem.out.println("input stream: " + in.getinputstream()); Sstem.out.println("output stream: " + in.getoutputstream()); Sstem.out.println("send buffer: " + in.getsendbuffersize()); Sstem.out.println("receive buffer: " + in.getreceivebuffersize()); catch (Exception e) { Sstem.out.println("Hiba: " + e); Sstem.out.println("AlapServer leallt"); Forráskód AlapKliens.java import java.io.*; import java.net.*; class AlapKliens { public static void main(string[] args) { tr { String host; // paraméterként is lehessen gazdagépet megnevezni if (args.length > 0 && args[0]!= null) { host = args[0]; else { host = "localhost"; // a kapcsolóelem létrehozása Socket t = new Socket(host, 8008); catch (Exception e) { Sstem.out.println("Hiba: " + e); A futás eredméne SOCKETIMPL OSZTÁLY Csomag: java.net
12 Deklaráció: public abstract class SocketImpl implements SocketOptions. ]YHWOHQVjava.lang.Object Fontosabb implementált interfészek: SocketOptions Ez az interfész szolgáltatja a Socket adatokat, mint például timeout és más egebek. A SocketImpl absztrakt osztál a közös szuperosztála mindazon osztáloknak, amelek ténlegesen létrehozzák a kapcsolóelemeket. Ez használhatjuk mind a kliens, mind a szerver oldali kapcsolóelemek létrehozására. Eg "sima" kapcsolóelem ezeket a metódusokat pontosan úg valósítja meg, ahog azok OHtUiVUDNHU OWHNpVQHPNtVpUOLPHJKRJ\W&]IDORQYDJ\SUR[LV]HUYHUHQSUEiOMRQPHJ áthatolni. 0H]N protected FileDescriptor fd protected InetAddress address protected int port protected int localport /iwkdw KRJ\ D PH]N D]RNDW D] DGDWRNDW WDUWDOPD]]iN DPHO\HNUH D NDSFVROHOHPHNQHNV] NVpJ NYDQDP&N GpV NN ]EHQD]D]D],3 FtPDKHO\LpVD távoli gép port azonosítója. Ehhez hozzájön még a FileDescriptor osztál példána, amel azonosító a pufferbe írt, állománként kezelt karaktersorozatok mutatójaként szolgál. Konstruktorok: Konstruktora nincs, hiszen absztrakt osztál. Metódusok void setsocket(socket soc) void setserversocket(serversocket soc) Ez a két metódus állítja be, hog a SocketImpl milen típusú legen, szerver, vag NOLHQVROGDOLNDSFVROHOHPNpQWP&N GM Q Természetesen a SocketImpl tartalmazza mindazon általános metódusokat, ameleket akár a ServerSocket, akár a SocketREMHNWXPRNP&N GpVHNRUPHJKtYXQNKLV]HQDWpQ\OHJHV munkát ez az osztál végzi. Ezeket itt most nem is soroljuk fel az ismétlés elkerülésére. Javasoljuk azonban a SocketImpl.java fájl tanulmánozását, mert a megjegzésekkel, PDJ\DUi]DWRNNDOEVpJHVHQHOOiWRWWIRUUiVNGEOPLQGHQPHJpUWKHW
13 KLIENS-SZERVER ALKALMAZÁS Kis keresgélés után eg Java nelvet oktató kolléga 5 weboldalairól töltöttük le az alábbi két kis példaprogramot. Ez a program -legalább is ötletszinten - uganakkor megtalálható a Core Java könvben is 6. Eg-két helen átírva a logikáját és persze az összes üzenetét, ezen WDQXOPiQ\R]KDWMXND]DONDOPD]iVP&N GpVpW)LJ\HOM QNDUUDKRJ\HORV]WRWWDONDOPD]iV esetén a kliens és a szerver program önálló, azaz biztosítani kell a külön-külön futtatás OHKHWVpJpWN O QIiMON O QPDLQPHWGXVD]D]N O QYLUWXiOLVJpSGHDNpWSURJUDP asszimetrikusan összetartozik. Az asszimetria itt azt jelenti, hog a szerver elindítható a kliens QpON OH]DWHUPpV]HWHVIXWiVDGHDNOLHQVSURJUDPP&N GpVHV]HUYHUQpON OpUWHOPHWOHQ$ PHJIHOHOHQPHJtUWNOLHQVHOV] UDV]HUYHUWSUEiOMDHOpUQLDPHQQ\LEHQH]QHPVLNHU O hibajelzést fog adni. $NpWHUHGHWLIRUUiVIiMOWPHJMHJ\]pVHNNHOOiWWXNHOKRJ\HJ\V]HU&HQpUWHOPH]KHWOHJ\HQ Szerverprogram - EchoServer.java //a szükséges csomagok import java.io.*; import java.net.*; class EchoServer { public static void main(string[] args) { Sstem.out.println("EchoServer elindult"); tr { //szerver kapcsolóelem objektum, amel a megadott porton figel ServerSocket s = new ServerSocket(8008); /* elfogadja a kapcsolatot a kliens kérésére és általános kapcsolóelemet hoz létre */ Socket incoming = s.accept(); Sstem.out.println("létrejött a kapcsolat a " + incoming.getinetaddress() +" IP számú gazdagéphez a " + incoming.getlocalport()+ " portszámon."); //az íráshoz-olvasáshoz szükséges objektumok BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream())); PrintWriter out = new PrintWriter(new OutputStreamWriter(incoming.getOutputStream())); //a kiíró objektumot fel is használjuk eg barátságos üdvözlésre out.println("hahó! Itt a Java EchoServer. 5 Xiaoping Jia, School of Computer Science, Telecommunications, and Information Sstems, De Paul Universit, Chicago, USA 6 Ca S. Horstmann, Gar Cornell Core Java (5. kiadás) 2. kötet 203. oldal
14 Kilépéshez BYE utasítás kell."); out.flush(); // végtelen ciklus, amel a szervert futtatja leállításig for (;;) { 6WULQJVWU LQUHDG/LQHEHROYDVVXNDEHM YIRO\DPRW if (str == null) { break; // ha nem jött semmi, nem csinálunk semmit else { /*az out objektum a kliensnek küldi vissza a paramétert, ez a kliens ablakában jelenik meg */ out.println("ezt küldte a kliens: " + str); out.flush(); //ürítjük a puffert, ha nem tesszük, nincs kiíratás! Sstem.out.println("Ezt kapta a szerver: " + str); if (str.trim().equals("bye")) //leállító utasítás break; incoming.close(); // lezárjuk a socket objektumot catch (Exception e) { KDYDODPLQHPVLNHU OWPHJIHOHOKLED ]HQHWHWN OG QN Sstem.out.println("Hiba: " + e); // Értesítést küldünk Sstem.out.println("EchoServer leállt."); Kliensprogram EchoClient.java import java.io.*; import java.net.*; class EchoClient { public static void main(string[] args) { tr { String host; /* a kliensnek paraméterként átadhatom a gazdagép nevét, alapértelmezetten ez a localhost */ if (args.length > 0 && args[0]!= null) { host = args[0]; else { host = "localhost"; // általános célú kapcsolóelem objektum, gazdanévvel és portszámmal Socket s = new Socket(host, 8008); // olvasó-író objektumok BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter out = new PrintWriter(new OutputStreamWriter(s.getOutputStream())); // legen tíz üzenet for (int i = 1; i <= 10; i++) { Sstem.out.println("Átküldve: " + i + ". sor"); // a ténlegesen kiküldött sor, ezt látja a szerver out.println(i + ". sor ");
15 // puffer ürítés out.flush(); /* lezárjuk eg üzenettel a szervert, a szerver kódjába beleégetve a lezárást biztosító string */ out.println("bye"); out.flush(); /* ez a végtelen ciklus figeli a socket objektumra punh] ]HQHWHNHWPRVWDV]HUYHUUOpUNH]NHW for (;;) { String str = in.readline(); if (str == null) { break; else { // kiírjuk, ami beérkezett Sstem.out.println(str); catch (Exception e) { /* ha például nem meg a szerver, nincs kapcsolódás és itt kapunk hibaüzenetet, mint például: Hiba: java.net.connectexception: Connection refused: connect */ Sstem.out.println("Hiba: " + e); )HODGDW )RUGtWVXN OH D NpW IRUUiVIiMOW pv IXWWDVVXN (OV] U WHUPpV]HWHVHQ D V]HUYHUSURJUDPRW LQGtWMXN XWiQD D NOLHQVW 9L]VJiOMXN PHJ KRJ\ D NLPHQHWHQ PHJMHOHQ ]HQHWHN KRQQDQ származnak, melik jön közvetlenül a programból eg-eg Sstem.out.println() utasításra, és melek jönnek az in és out kommunikációs objektumokból. A futás eredméne Feladat: Alakítsuk át a kliens-szerver alkalmazást, hog a kliens a konzolról beírt üzeneteket küldje HODV]HUYHUQHND]YLV]RQWDGMDYLVV]DH]HNHWPGRVtWYDSpOGiXOQDJ\EHW&VIRUPiEDQ$OHiOOtWiV WRYiEEUDLVPHJHJ\H]pVV]HULQWD%<( ]HQHWOHJ\HQGHEiUPLO\HQNLVpVQDJ\EHW&VIRUPiEDQ megadható legen. Ne csak a szerver álljon le a be üzenetre, hanem a kliens program futása is IHMH]GM QEH Forráskód AllCapServer.java import java.io.*; import java.net.*; class AllCapServer { public static void main(string[] args) { Sstem.out.println("AllCapServer elindult"); tr { // a szerver objektumok létrehozása, kapcsolat elfogadás ServerSocket s = new ServerSocket(8008); Socket incoming = s.accept(); // kapcsolat adatai Sstem.out.println("Kapcsolat a " + incoming.getinetaddress() +
16 " IP cimen " + incoming.getlocalport() + " portszamon"); // olvasó - író objektumok BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream())); PrintWriter out = new PrintWriter(new OutputStreamWriter(incoming.getOutputStream())); // tájékoztató üzenet out.println("a kapott uzeneteket nagbetusre alakitjuk. Leallas be uzenetre."); out.flush(); while (true) { // a beolvasó objektumból kivesszük az üzenetet String str = in.readline(); if (str == null) { break; else { /* az üzeneteket kiírjuk és utána átalakítjuk tjpuhw QNQHNPHJIHOHOHQ Sstem.out.println("Kapott uzenet: " + str); str = str.touppercase(); VWYLVV]DLVN OGM NEL]RQ\tWpNNpQW out.println("visszakuldve: " + str); out.flush(); KDPHJIHOHO ]HQHWHWNDSXQN, kilépünk a végtelen ciklusból... if (str.trim().equals("bye")) break; //és leállítjuk a szervert incoming.close(); catch (Exception e) { Sstem.out.println("Hiba: " + e); Sstem.out.println("AllCapServer leallt"); Forráskód AktivKliens.java import java.io.*; import java.net.*; class AktivKliens { private static String bemenet; // beolvasó függvén AE extra csomagja alapján private static String beolvas() { BufferedReader be = new BufferedReader(new InputStreamReader(Sstem.in)); String bestring = ""; tr { bestring = be.readline(); catch (IOException e) { Sstem.out.println("Hiba: " + e);
17 return bestring; public static void main(string[] args) { tr { String host; // paraméterként is lehessen gazdagépet megnevezni if (args.length > 0 && args[0]!= null) { host = args[0]; else { host = "localhost"; // a kapcsolóelem létrehozása Socket t = new Socket(host, 8008); // az olvasó - iró objektumok BufferedReader in = new BufferedReader(new InputStreamReader(t.getInputStream())); PrintWriter out = new PrintWriter(new OutputStreamWriter(t.getOutputStream())); do { // beolvasunk a standard inputról, most DOS ablakból bemenet = beolvas(); // ezt olvastuk be és ki is írjuk Sstem.out.println("Elkuldott uzenet: " + bemenet); // most viszont átküldjük a szerverre out.println(bemenet); //itt küldi el out.flush(); // itt fogadjuk a szerver out objektuma által küldött üzeneteket String str = in.readline(); // és kiírjuk a standard kimenetre Sstem.out.println(str); // amig be üzenetet nem küldünk, erre a szerver és mi is leállunk while (!bemenet.trim().touppercase().equals("bye")); catch (Exception e) { Sstem.out.println("Hiba: " + e); A futás eredméne Tg%%./,(16(*<,'(-%.(=(/e6( +DHJ\6RFNHWDODSRQP&N GV]HUYHUDPHO\PHJDGRWWSRUWKR]NDSFVROGLN~MDEE SpOGiQ\iWDNDUMXNHOLQGtWDQLDNNRUpUWKHWHQKLED ]HQHWHWNDSXQNKLV]HQD]DGRWWSRUWRWHJ\ PiUIXWDONDOPD]iVIRJODOMDHOeUGHNHVSUREOpPDKRJ\PLW UWpQLNDNNRUKDHJ\P&N G V]HUYHUKH]W EENOLHQVVHODNDUXQNNDSFVRODWRWWHUHPWHQL,WWVHPHJ\V]HU&DIHODGDWKLV]HQD
18 Socket alapú kommunikáció lénege a folamatosan fenntartott kapcsolat, és ebben az HVHWEHQHJ\~MNOLHQVSURJUDPPHJ]DYDUQiDNRPPXQLNiFLW$]YLV]RQWHJ\V]HU&HQEHOiWKDW hog szálak alkalmazásával 7 egmástól független kapcsolatok hozhatók létre és ezzel már meg is oldottuk - elvben - a problémát. Ehhez persze a szervert kell átalakítani, hiszen csak a V]HUYHUWXGDW EEHJ\LGHM&NDSFVROGiVLNpUHOHPUOD]HJ\HVNOLHQVSpOGiQ\RNQHP tudhatnak egmásról. Az alábbi példaprogram olan szervert valósít meg, amel szálakon keresztül több klienst is NpSHVHJ\LGHM&OHJNH]HOQL$7KUHDGRV]WiO\EO U NtWHWW.OLHQV.H]HORRV]WiO\WKR]XQNOpWUH amelnek konstruktora eg Socket típusú objektumot vesz át és egetlen metódusa az DODSpUWHOPH]HWWUXQHOMiUiV(]D]HOMiUiVOpQ\HJpEHQDNRUiEEDQPiUPHJLVPHUWHJ\V]HU& szerver teljes kódját tartalmazza, íg eg teljes szerverpéldánnak felel meg. A kapcsolódási kérés beérkezésekor, az accept() metódus lefutásával létrejön a szál objektum és annak start() metódusa hívja meg a run() metódust. A korábban alkalmazott szerver leállításról most természetesen szó sem lehet, hiszen kliens oldalon nem tudhatunk arról, hog a többi kliens mit csinál éppen. A szál viszont leállítható és az aktív szálak számát a run() metóduson belül elhelezett activecount() függvén adja vissza. Forráskód MultiAllCapServer.java import java.io.*; import java.net.*; class KliensKezelo extends Thread { protected Socket incoming; public KliensKezelo(Socket incoming) { this.incoming = incoming; public void run() { tr { // olvasó - író objektumok BufferedReader in = new BufferedReader(new InputStreamReader(incoming. getinputstream())); PrintWriter out = new PrintWriter(new OutputStreamWriter(incoming. getoutputstream())); // tájékoztató üzenet out.println( "A kapott uzeneteket nagbetusre alakitjuk. Szal leall be 7 Angster Erzsébet Objektumorientált tervezés és programozás 2. kötet xxx. oldal
19 uzenetre."); out.flush(); while (true) { // a beolvasó objektumból kivesszük az üzenetet String str = in.readline(); if (str == null) { break; else { /* az üzeneteket kiírjuk és utána átalakítjuk tjpuhw QNQHNPHJIHOHOHQ // megszámoljuk a futó szálakat is... Sstem.out.println("Jelenleg " + this.activecount() + " aktiv szal fut"); Sstem.out.println("Kapott uzenet: " + str); str = str.touppercase(); VWYLVV]DLVN OGM NEL]RQ\tWpNNpQW out.println("visszakuldve: " + str); out.flush(); KDPHJIHOHO ]HQHWHWNDSXQNNLOpS QNDYpJWHOHQFLNOXVEO if (str.trim().equals("bye")) break; //és leállítjuk a szerver szálat incoming.close(); catch (Exception e) { Sstem.out.println("Hiba: " + e); public class MultiAllCapServer { public static void main(string[] args) { Sstem.out.println("MultiAllCapServer elindult."); tr { ServerSocket s = new ServerSocket(8008); //a szerver szálakat futtató végtelen ciklus while (true) { //áll a ciklus, amíg nem jön kapcs. kérés Socket incoming = s.accept(); new KliensKezelo(incoming).start(); catch (Exception e) { Sstem.out.println("Hiba: " + e); Sstem.out.println("MultiAllCapServer leallt.");
Ja J v a a v a há h l á óz ó a z t a i al a ka k l a maz ma á z s á o s k o Socket, URL
Java hálózati alkalmazások Socket, URL Protokollok java.net: socket, URL (Uniform Resource Locators) Protokoll: számítógépek közötti kommunikáció szabályai Internet TCP/IP (Transport Control Protocol/Internet
RészletesebbenURL-LEL ADOTT OBJEKTUM LETÖLTÉSE (1) URL-LEL ADOTT OBJEKTUM LETÖLTÉSE
Programozás III HÁLÓZATKEZELÉS A hálózatkezeléshez használatos java csomag: java. net Hol találkoztunk már vele? Pl.: URL cim = this.getclass().getresource("/zene/valami_zene.wav"); De pl. adott URL-ről
RészletesebbenObjektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN
Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.
RészletesebbenOOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
RészletesebbenCREATE 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.
RészletesebbenAz új be- és kimenet könyvtár
Az új be- és kimenet könyvtár import java.io.ioexception; import java.io.fileinputstream; import java.io.fileoutputstream; import java.nio.channels.filechannel; import java.nio.bytebuffer; class Masol
RészletesebbenHálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20
Hálózatkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés 2013 1 / 20 Tartalomjegyzék 1 Hálózati Alapismeretek 2 System.Net Namespace 3 Socket Kezelés 4 Példa Tóth Zsolt
RészletesebbenSegé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
RészletesebbenSegédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 12. gyakorlat 1 Távoli metódushívás Java-ban (RMI) Java-ban a távoli metódushívás ( Remote Method Invocation, RMI) egy
RészletesebbenJava Programozás 11. Ea: MVC modell
Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát
RészletesebbenJava bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o
Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform
RészletesebbenJava Programozás 1. Gy: Java alapok. Ismétlés ++
Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk
RészletesebbenJava programozási nyelv 10. rész Input/output kezelés
Java programozási nyelv 10. rész Input/output kezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/28 Tartalomjegyzék
RészletesebbenHelyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?
A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály
RészletesebbenProgramozási nyelvek II.: JAVA
Programozási nyelvek II.: JAVA 5. gyakorlat 2017. október 9-13. 5. gyakorlat Programozási nyelvek II.: JAVA 1 / 34 Az 5. gyakorlat tematikája Kivételkezelés alapjai Be és kimenet BufferedReader, Scanner
RészletesebbenSzéchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
RészletesebbenKivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés
Kivételek kezelése (exception handling) Hibakezelés old style class Szamolo { void szamol( String s, int i ) { int d; if (i!= 0) d = (i+1)/i; else if (s!= null) d = s.length(); else if (i > 10) // applikációs
RészletesebbenAbstract osztályok és interface-ek. 7-dik gyakorlat
Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,
RészletesebbenTCP/IP kapcsolat Java nyelven
Java programozási nyelv 2007-2008/ősz 5. óra TCP/IP kapcsolat Java nyelven Java streamek, szűrők, java.io TCP/IP alapú kommunikáció Egyszerű protokoll tervezése legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu
RészletesebbenAz osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java
Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:
RészletesebbenInformatika 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
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked
RészletesebbenPelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;
Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely
RészletesebbenSzoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java 9. gyakorlat Fájlkezelés A fájlkezelés Java-ban különböző osztályok összekapcsolásával történik. Minden egyes osztály valamilyen minimális szolgáltatást tesz hozzá a többihez.
Részletesebben7. K: JAVA alapok Konzultáció
Objektum Orientált Programozás 7. K: JAVA alapok Konzultáció 35/1B IT MAN B IT v: 2017.05.03 MAN Hiba, biztonságos program 01. Szintaktikai hiba imt i = 0; system.out.println( alma ); for (int i = 0, i
Részletesebben3. Osztályok II. Programozás II
3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt
Részletesebben18. előadás ÁLLANDÓ KÖLTSÉGEK ÉS A KÖLTSÉGGÖRBÉK
18. előadás ÁLLANDÓ KÖLTSÉGEK ÉS A KÖLTSÉGGÖRBÉK Kertesi Gábor Világi Balázs Varian 21. fejezete átdolgozva 18.1 Bevezető A vállalati technológiák sajátosságainak vizsgálatát eg igen fontos elemzési eszköz,
RészletesebbenJava gyakorlat feladatai e s megolda sai (2014.04.10)
Java gyakorlat feladatai e s megolda sai (2014.04.10) 1. Feladat Számítsuk ki a Fibonacci sorozat első 20 tagját! / Fibonacci számsorozat tagjait kiszámoló, egyetlen osztályból álló program @author Bence
RészletesebbenSzoftvertechnolo gia gyakorlat
Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot
RészletesebbenBME MOGI Gépészeti informatika 8.
BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező
Részletesebbenés az instanceof operátor
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
RészletesebbenOBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető
RészletesebbenJava Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor
Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig
RészletesebbenJava VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
RészletesebbenJava 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
RészletesebbenBME MOGI Gépészeti informatika 4.
BME MOGI Gépészeti informatika 4. 1. feladat önálló feladatmegoldás Generáljon két 1 és 10 közötti véletlen egész számot, majd kiírja ezekre a számokra a tízes szorzótáblákat! Ha az első generált szám
RészletesebbenSegédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 2. gyakorlat 1 Osztályok és objektumok default, public, protected, private láthatóság a metódusokra és adattagokra (első
RészletesebbenConcurrency in Swing
Concurrency in Swing A szálkezelés a swing alkalmazásokban is fontos. Cél egy olyan felhasználói felület készítése, amely soha nem fagy, mindig válaszol a felhasználói interakciókra, bármit is csináljon
RészletesebbenSzoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html 1 Kivételkezelés I. szokatlan, váratlan
RészletesebbenJava programozási nyelv 4. rész Osztályok II.
Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék
RészletesebbenHORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport
10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)
RészletesebbenSzá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észletesebbenSe S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció
Serialization (in Java) Szerializáció Java Serialization API Standard eljárás az objektumok állapotának adatfolyamba történő kiírására (elmentésére egy bájtszekvenciába), és visszatöltésére Perzisztencia
RészletesebbenOOP: Java 8.Gy: Gyakorlás
OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét
RészletesebbenKommunikáció Androidon Mobilinternet Wifi
OE-NIK 2012. március 24. Sicz-Mesziár János sicz-mesziar.janos@ nik.uni-obuda.hu Kommunikáció Androidon Mobilinternet Wifi Kommunikációs eszközök Androidon Wi-Fi Ma már minimum: a / b / g szabványok, újabbakon
RészletesebbenAz emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben
Az emelt szintű informatika érettségi programozási feladatainak megoldása Java nyelven NetBeans IDE 8.1 környezetben Klement András 2016 Utolsó módosítás: 2016. május 25. Tartalomjegyzék Tartalomjegyzék
RészletesebbenA WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév
Általános jellemzők JavaServer Pages (JSP) Java utasításokat helyezetünk el a HTML lapon Ezket a Java utasításokat a kiszolgáló végrehajtja Az ügyfél felé generált tartalom: statikus HTML kód + Java utasítások
RészletesebbenJAVA PROGRAMOZÁS 3.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram
RészletesebbenProgramozási nyelvek II. JAVA EA+GY 1. gyakolat
Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről
RészletesebbenJava és web programozás
Budapesti Műszaki Egyetem 2015. 04. 08. 9. Előadás Kivétel kezelés a kivétel (exception) egy esemény, mely futás közben megbontja a program normális futási folyamatát például kivétel dobódik amikor 0-val
RészletesebbenVé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread
Végrehajtási szálak Runnable, Thread Végrehajtási szálak Java-ban A Java program az operációs rendszer egy folyamatán (process) belül fut. A folyamat adat és kód szegmensekből áll, amelyek egy virtuális
RészletesebbenJava Programozás 6. Gy: Java alapok. Adatkezelő 2.rész
Java Programozás 6. Gy: Java alapok Adatkezelő 2.rész 25/1 B ITv: MAN 2018.04.13 A feladat Feladat: folytassuk a panel életre keltését! - Alakítsuk ki a Lista panelt - Betöltéskor olvassuk be az adatokat
RészletesebbenJava és web programozás
Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)
RészletesebbenJNDI - alapok. Java Naming and Directory Interface
JNDI - alapok Java Naming and Directory Interface Naming Service Naming service: nevek hozzárendelése objektumokhoz, elérési lehetőség (objektumok/szolgáltatások lokalizálása), információk központosított
RészletesebbenWeb-technológia PHP-vel
Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request
RészletesebbenJava I. A Java programozási nyelv
Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem
RészletesebbenJava programozási nyelv
Szoftvertechnológia sáv Java programozási nyelv Dirk Louis-Peter Müller: Java (Belépés az internet világába) Panem kiadó, Budapest, 2002. Webvilág sorozat Készítette: Gregorics Tibor Vázlatos áttekintés
RészletesebbenProgramozási nyelvek és módszerek Java Thread-ek
Programozási nyelvek és módszerek Java Thread-ek Laki Sándor lakis@inf.elte.hu 2006. május 3. 0-0 Szálak (Threads) Ahhoz, hogy egy mai rendszer m ködhessen több 10-100 folyamatnak kell futnia. A folyamatok
RészletesebbenJava programozási nyelv 9. rész Kivételkezelés
Java programozási nyelv 9. rész Kivételkezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/24 Tartalomjegyzék
RészletesebbenA Java nyelv IV. rész - appletek, hálózati alkalmazások fejlesztése
A Java nyelv IV. rész - appletek, hálózati alkalmazások fejlesztése A Java magasfokú objektumorientáltsága következtében egy Java program osztályok és objektumok összefüggő halmazát jelenti. A program
RészletesebbenProgramozás I. Első ZH segédlet
Programozás I. Első ZH segédlet Ezen az oldalon: kiírás az alapértelmezett (hiba) kimenetre, sztring konkatenáció, primitív típusok, osztály létrehozás, példányosítás, adattagok, metódusok Kiíratás alapértelmezett
RészletesebbenJava és web programozás
Budapesti M szaki Egyetem 2013. szeptember 11. Jó hír Jó hír Java lesz! Tárgyismertet Elérhet ségek: Kovács Kristóf: kkovacs@math.bme.hu Rimay Zoé: zrimay@math.bme.hu, Követelmények: Év végi beadandó (facebook):
RészletesebbenKonkurens 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ó
RészletesebbenProgramozás II. ATM példa Dr. Iványi Péter
Programozás II. ATM példa Dr. Iványi Péter 1 ATM gép ATM=Automated Teller Machine Pénzkiadó automata Kezelő szoftvert szeretnénk írni Objektum-orientált módon 2 Követelmények Egyszerre csak egy embert
RészletesebbenObjektum Orientált Programozás. 5. JAVA osztályok 21/1B IT MAN
Objektum Orientált Programozás 5. JAVA osztályok 21/1B IT MAN B IT v: 2016.03.09 MAN Feladatok 1. Készítsen egy Alkalmazott osztályt - legyen név, kor és fizetés adata - legyen egy osztályszintű adattagja
RészletesebbenA gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.
Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként
RészletesebbenJava Programozás 9. Gy: Java alapok. Adatkezelő 5.rész
Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik
RészletesebbenAdatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben
Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk
RészletesebbenJava VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
RészletesebbenINFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
RészletesebbenTartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!
Tartalomjegyzék Általános Információ! 2 Felhasználói dokumentáció! 3 Feladat! 3 Környezet! 3 Használat! 3 Bemenet! 3 Példa! 3 A program eredménye! 3 Példa! 3 Hibalehetőségek! 3 Példa! 3 Fejlesztői dokumentáció!
RészletesebbenOOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN
OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás
RészletesebbenJAVA PROGRAMOZÁS 8.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 8.ELŐADÁS 2014-2015 tavasz Véletlen elérésű állományok; JDBC 2 Véletlen elérésű állományok A RandomAccessFile osztály 3 Közvetlen hozzáférésű
RészletesebbenProgramozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
RészletesebbenJava hálózatkezelés II. szerver-kliens kapcsolat szálkezelés JAVA PROGRAMOZÁS 10. GYAKORLAT
Java hálózatkezelés II. szerver-kliens kapcsolat szálkezelés JAVA PROGRAMOZÁS 10. GYAKORLAT Socket Hálózati kommunikáció alapja Kapcsolatkiépítés: bind() ezen a címen és portonkeresztül connect() erre
RészletesebbenHello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.
Hello World Servlet Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra. Hozzunk létre egy Dynamic Web projectet File New Other itt a következőket
RészletesebbenJava technológiák - ANTAL Margit. komponensek. A HTTP protokoll. Webkonténerek és szervletek. Egyszerű HTTP. ANTAL Margit.
Sapientia - EMTE 2010 A célja A viselkedése Megjelenítés komponenstípusok Adatok megjelenítése: grafikonok, táblázatok Űrlapok Navigációs elemek: menük, hiperlinkek Informácios képernyők: útbaigazítások,
Részletesebben4. Gy: JAVA osztályok
Objektum Orientált Programozás 4. Gy: JAVA osztályok 25/1B IT MAN B IT v: 2016.02.24 MAN Feladatok 1. Készítsen egy Teglalap osztályt - legyen adattagja a két oldal tárolására (egészek) - legyen konstruktora,
RészletesebbenOsztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
RészletesebbenHálózati architektúrák laborgyakorlat
Hálózati architektúrák laborgyakorlat 10. hét Dr. Orosz Péter, Skopkó Tamás 2012. szeptember A Unix (C) socket A kommunikációt lehetővé tevő programozási eszköz UNIX fájlleíró (ld. minden egy fájl filozófia)
Részletesebben1. Alapok. Programozás II
1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph
RészletesebbenAdabáziselérés ODBC-n keresztül utasításokkal C#-ban
Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\
RészletesebbenKivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat
Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot
RészletesebbenInformáció és kommunikáció
Információ és kommunikáció Tanmenet Információ és kommunikáció TANMENET- Információ és kommunikáció Témakörök Javasolt óraszám 1. Az internet jellemzői 25 perc 2. Szolgáltatások az interneten 20 perc
RészletesebbenProgramozá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
RészletesebbenSzámítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
RészletesebbenJava Programozás 3. Gy: Java GUI. Swing, AWT
Java Programozás 3. Gy: Java GUI Swing, AWT 35/1 B ITv: MAN 2018.02.25 Feladat Készítsük el az Emp osztály kezelő programját úgy, hogy ArrayList-et (listatömb, tömblista, rugalmas tömb) használunk. A java.util.arraylist
RészletesebbenObjektumorientált programozás C# nyelven III.
Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és
RészletesebbenOOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos
OOP I. Egyszerő algoritmusok és leírásuk Készítette: Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát képezik. Ismeretük
RészletesebbenOOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés
OOP: Java 6.Gy: Java osztályok Definíció, static, túlterhelés 45/1 B ITv: MAN 2019.03.18 Feladat Készítsen egy Alkalmazott osztályt saját csomagban, név, kor és fizetés adatokkal. Legyen egy osztályszintű
RészletesebbenJava IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
RészletesebbenLaboratóriumi gyakorlatok
Laboratóriumi gyakorlatok Fehér Gyula Kóré László Analóg-Digitál átalakítók GYAKORLATOK TARTALOMJEGYZÉK 1. BEMUTATÓ VIZSGÁLATOK...4 1.1 P,//$1$7e57e.0e5 e6 È7/$*e57e.0e5 7Ë3862...4 1.2 P,//$1$7e57e.(7
RészletesebbenBevezető. Servlet alapgondolatok
A Java servlet technológia Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 06. Servlet Bevezető Igény a dinamikus WEB tartalmakra Előzmény: CGI Sokáig
RészletesebbenJava IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
RészletesebbenProgramozási technológia
Programozási technológia Osztályszintű elérés Kivételkezelés, Fájlkezelés Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Osztályszintű elérés (statikusság) Az osztályban definiált attribútumok és műveletek
RészletesebbenOCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)
OCSP Stapling Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10) 1. Tartalomjegyzék 1. Tartalomjegyzék... 2 2. Bevezető... 3 3. OCSP Stapling támogatással rendelkező webszerverek...
RészletesebbenSzámítógépes Hálózatok GY 6.hét
Számítógépes Hálózatok GY 6.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
RészletesebbenA Java programozási nyelv
1. óra A Java programozási nyelv Bevezetés, alapfogalmak Változók, egyszerű típusok, tömb Vezérlési szerkezetek Standard I/O legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu Java programozási nyelv Témakörök
RészletesebbenOsztályszintű elérés, kivételkezelés, fájlkezelés
Programozási, kivételkezelés, fájlkezelés Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 3 4 2 (statikusság) Az osztályban definiált attribútumok és műveletek az osztályból példányosított
Részletesebben