Hálózati alkalmazások

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Hálózati alkalmazások"

Átírás

1 Hálózati alkalmazások

2 Hálózati alkalmazások QT osztályai A Qt támogatja az FTP és HTTP alapú hálózati alkalmazások készítését. A QFtp osztály segítségével lehet fájlokat megadott hálózati helyekre fel- vagy helyekről letölteni. A QHttp osztály felhasználásával web szerverek számára lehet kéréseket megfogalmazni és az azokra kapott válaszokat feldolgozni. A Qt az alacsony szintű hálózat-kezeléshez a QTcpSocket és a QUdpSocket osztályokat biztosítja, amelyek a TCP és UDP protokollokat implementálják. Mindkettő alkalmas hálózati kliens-szerver alkalmazások létrehozására. Az alkalmazások.pro fájljában szükség van az alábbi kapcsolóra: QT += network 2

3 FTP kliens A QFtp osztály az FTP protokoll kliens oldali implementációját adja. Különféle metódusokat biztosít az FTP parancsok végrehajtásához. A connecttohost(), login(), close(), list(), cd(), get(), put(), remove(), mkdir(), rmdir(), rename() metódusok mindegyike egy FTP parancsot vált ki, és visszaadja az FTP parancs azonosítóját. Bármely más FTP parancs a rawcommand() metódus segítségével kiadható ftp.rawcommand("site CHMOD 755 fortune"); A QFtp kiváltja a commandstarted(int) szignált, amikor egy parancsot el kezd végrehajtani, és a commandfinished(int, bool) szignált, amikor egy parancs befejeződött. Az int paraméter a parancs azonosítója. A QFtp osztály az FTP parancsok aszinkron működését támogatja. Amikor az összes befejeződik az összes kérés, kiváltja a done(bool) szignált. 3

4 1.Feladat Készítsünk egy olyan alkalmazást, amely segítségével egy távoli fájlt tudunk letölteni FTP protokollt használva. A program legyen egy konzol alkalmazás. nincs szükség a QtGui könyvtárra int main(int argc, char *argv[]){ QCoreApplication app(argc, argv); parancssor argumentumai QStringList args = app.arguments(); if (args.count()!= 2) { cerr << "Usage: ftpget url" << endl << "Example:" << endl << " ftpget ftp://ftp.trolltech.com/mirrors" << endl; return 1; saját osztály elindítja a fájl-letöltés FtpGet getter; if (!getter.getfile(qurl(args[1]))) return 1; QObject::connect(&getter, SIGNAL(done()), &app, SLOT(quit())); return app.exec(); a fájl-letöltés befejezése leállítja az alkalmazást 4

5 1.Feladat: tervezés FtpGet QObject - _ftp :QFtp - _file :QFile + FtpGet(QObject*) + getfile(qurl) «slot» - ftpdone(bool) 5

6 1.Feladat: megoldás FtpGet::FtpGet(QObject *parent) : QObject(parent){ connect(&_ftp, SIGNAL(done(bool)), this, SLOT(ftpDone(bool))); void FtpGet::ftpDone(bool error){ fájl művelet befejezésének lekezelése if (error) { cerr << "Error: " << qprintable(_ftp.errorstring()) << endl; else { cerr << "File downloaded as " << qprintable(_file.filename()) << endl; _file.close(); emit done(); 6

7 1.Feladat: megoldás bool FtpGet::getFile(const QUrl &url){ if (!url.isvalid()) { URL ellenőrzése cerr << "Error: Invalid URL" << endl; return false; if (url.scheme()!= "ftp") { cerr << "Error: URL must start with 'ftp:'" << endl; return false; if (url.path().isempty()) { cerr << "Error: URL has no path" << endl; return false; 7

8 1.Feladat: megoldás bool FtpGet::getFile(const QUrl &url){ QString localfilename = QFileInfo(url.path()).fileName(); if (localfilename.isempty()) localfilename = "ftpget.out"; _file.setfilename(localfilename); if (!_file.open(qiodevice::writeonly)) { lokális fájl nevének beállítása cerr << "Error: Cannot open " << qprintable(_file.filename()) << " for writing: " << qprintable(_file.errorstring()) << endl; return false; lokális fájl megnyitása _ftp.connecttohost(url.host(), url.port(21)); _ftp.login(); _ftp.get(url.path(), &_file); FTP műveletek _ftp.close(); return true; 8

9 2.Feladat Készítsünk egy olyan command-line alkalmazást, amely minden fájlt letölt egy FTP könyvtárból, sőt rekurzív módon annak alkönyvtáraiból is. int main(int argc, char *argv[]) nincs szükség a QtGui könyvtárra { QCoreApplication app(argc, argv); parancssor argumentumai QStringList args = app.arguments(); if (args.count()!= 2) { cerr << "Usage: spider url" << endl << "Example:" << endl << "spider ftp://ftp.trolltech.com/freebies/leafnode" << endl; return 1; saját osztály elindítja a fájl-letöltés Spider spider; if (!spider.getdirectory(qurl(args[1]))) return 1; QObject::connect(&spider, SIGNAL(done()), &app, SLOT(quit())); return app.exec(); a fájl-letöltés befejezése leállítja az alkalmazást 9

10 2.Feladat: tervezés Spider - _ftp :QFtp - _pendingdirs : QString - _openedfiles : Qlist<Qfile*> - _currentdir : QString - _currentlocaldir : QString + Spider(QObject*) + getdirectory(qurl) - processnextdirectory() «signal» - done() «slot» - ftpdone(bool) - ftplistinfo(qurlinfo) QObject letöltésre váró könyvtárak nevei memória szivárgás elkerüléséhez ezt az FTP get műveletével elkezdett letöltés befejezése váltja ki connect(&_ftp, SIGNAL(done(bool)), this, SLOT(ftpDone(bool))); connect(&_ftp, SIGNAL(listInfo(const QUrlInfo &)), this, SLOT(ftpListInfo(const QUrlInfo &))); ezt az FTP list művelete minden egyes listázott tételre kiváltja 10

11 2.Feladat: megoldás bool Spider::getDirectory(const QUrl &url) { if (!url.isvalid()) { ez indítja az adott könyvtárbeli fájlok letöltését cerr << "Error: Invalid URL" << endl; return false; if (url.scheme()!= "ftp") { cerr << "Error: URL must start with 'ftp:'" << endl; return false; _ftp.connecttohost(url.host(), url.port(21)); _ftp.login(); QString path = url.path(); if (path.isempty()) path = "/"; _pendingdirs.append(path); processnextdirectory(); return true; 11

12 2.Feladat: megoldás void Spider::processNextDirectory() { if (!_pendingdirs.isempty()) { _currentdir = _pendingdirs.takefirst(); _currentlocaldir = "downloads/" + _currentdir; QDir(".").mkpath(_currentLocalDir); _ftp.cd(_currentdir); _ftp.list(); else { emit done(); Ha van már fellelt, de feldolgozatlan könyvtár, akkor annak elemeit listázza, és mindegyikre kiváltja a listinfo(qurlinfo) szignált. 12

13 2.Feladat: megoldás void Spider::ftpListInfo(const QUrlInfo &urlinfo) { valahányszor egy könyvtárbeli if (urlinfo.isfile()) { tétel listázásra kerül if (urlinfo.isreadable()) { QFile *file = new QFile(_currentLocalDir +"/"+ urlinfo.name()); if (!file->open(qiodevice::writeonly)) { cerr << "Warning: Cannot open file " << qprintable(qdir::convertseparators(file->filename())) << endl; return; _ftp.get(urlinfo.name(), file); _openedfiles.append(file); ha normális fájl, akkor elkezdjük a letöltését else if (urlinfo.isdir() &&!urlinfo.issymlink()) { _pendingdirs.append(_currentdir + "/" + urlinfo.name()); ha könyvtár, akkor feljegyezzük 13

14 2.Feladat: megoldás void Spider::ftpDone(bool error) { if (error) { cerr << "Error: " << qprintable(_ftp.errorstring()) << endl; else { cout << "Downloaded " << qprintable(_currentdir) << " to " << qprintable(qdir::convertseparators( QDir(_currentLocalDir).canonicalPath())); qdeleteall(_openedfiles); _openedfiles.clear(); processnextdirectory(); itt van a rekurzió amikor az eddig elindított fájl letöltések befejeződtek Eltároltuk az eddig letöltésre kijelölt fájlokat, ezért most a letöltések befejeződésekor törölni tudjuk őket, így elkerüljük a memória szivárgást. 14

15 HTTP kliens A QHttp osztály a HTTP protokoll kliens oldali implementációját adja. Különféle metódusokat biztosít az FTP parancsok végrehajtásához. A sethost(), get(), post(), remove(), head() metódusok mindegyike egy HTTP parancsot vált ki. Bármely más FTP parancs a rawcommand() metódus segítségével kiadható ftp.rawcommand("site CHMOD 755 fortune"); A QHttp kiváltja a requeststarted(int) szignált, amely egy kérés végrehajtásakor keletkezik, és a requestfinished(int, bool) szignált, amikor a kérés befejeződött. Az int paraméter a kérés azonosítója. Amikor a kérések sora kiürül, akkor kiváltódik a done(bool) szignál. 15

16 3.Feladat Készítsünk egy olyan alkalmazást, amely segítségével egy távoli fájlt tudunk letölteni HTTP protokollt használva. A program legyen egy konzol alkalmazás. nincs szükség a QtGui könyvtárra int main(int argc, char *argv[]){ QCoreApplication app(argc, argv); parancssor argumentumai QStringList args = app.arguments(); if (args.count()!= 2) { cerr << "Usage: httpget url" << endl << "Example:" << endl << "httpget << endl; return 1; saját osztály elindítja a fájl-letöltés HttpGet getter; if (!getter.getfile(qurl(args[1]))) return 1; QObject::connect(&getter, SIGNAL(done()), &app, SLOT(quit())); return app.exec(); a fájl-letöltés befejezése leállítja az alkalmazást 16

17 3.Feladat: tervezés HttpGet QObject - _http :QHttp - _file :QFile + HttpGet(QObject*) + getfile(qurl) «signal» - done() «slot» - httpdone(bool) 17

18 3.Feladat: megoldás HttpGet::HttpGet(QObject *parent) : QObject(parent){ connect(&_http, SIGNAL(done(bool)), this, SLOT(httpDone(bool))); fájl művelet befejezésének lekezelése void HttpGet::httpDone(bool error){ if (error) { cerr << "Error: " << qprintable(_http.errorstring()) << endl; else { cerr << "File downloaded as " << qprintable(_file.filename()) << endl; _file.close(); emit done(); 18

19 3.Feladat: megoldás bool HttpGet::getFile(const QUrl &url){ if (!url.isvalid()) { URL ellenőrzése cerr << "Error: Invalid URL" << endl; return false; if (url.scheme()!= "http") { cerr << "Error: URL must start with ' << endl; return false; if (url.path().isempty()) { cerr << "Error: URL has no path" << endl; return false; 19

20 3.Feladat: megoldás bool HttpGet::getFile(const QUrl &url){ QString localfilename = QFileInfo(url.path()).fileName(); if (localfilename.isempty()) localfilename = "httpget.out"; _file.setfilename(localfilename); lokális fájl nevének beállítása if (!_file.open(qiodevice::writeonly)) { cerr << "Error: Cannot open " << qprintable(_file.filename()) << " for writing: " << qprintable(_file.errorstring()) << endl; return false; lokális fájl megnyitása _http.sethost(url.host(), url.port(80)); _http.get(url.path(), &_file); _http.close(); HTTP műveletek return true; 20

21 TCP kliens-szerver alkalmazás A QTcpSocket és QTcpServer osztályok a TCP kliensek és szerverek implementációját adják. A TCP egy adatfolyam-orientált protokoll. A TCP-re épülő magasabb szintű protokollok tipikusan vagy sor-, vagy blokk-orientáltak. A sor-orientált protokollok soronként visznek át egy szöveget. A blokk-orientált protokollok bináris adatblokkokban. A QTcpSocket egy QDataStream vagy egy QTextStream felhasználásával végez írást illetve olvasás. A hálózatról történő olvasás esetén arra kell ügyelni, hogy szemben a szokásos fájlból olvasással a >> operator használata előtt meg kell győződni arról, hogy elegendő adatot fogunk-e letölteni. 21

22 4.Feladat Készítsünk egy utazást tervező alkalmazást. A Trip Planner kliens segítségével a felhasználó egy vonatútját tudja megtervezni. A Trip Server utazási információt nyújt a kliens számára az adott ország vasúti menetrendjéről. 22

23 4.Feladat: főprogramok int main(int argc, char *argv[]){ QApplication app(argc, argv); TripServer server; int main(int argc, char *argv[]){ QApplication app(argc, argv); TripPlanner tripplanner; tripplanner.show(); return app.exec(); if(!server.listen(qhostaddress::any, 6178)){ cerr << "Failed to bind to port" << endl; return 1; QPushButton quitbutton(tr("&quit")); quitbutton.setwindowtitle(tr("trip Server")); Connect(&quitButton, SIGNAL(clicked()), &app, SLOT(quit())); quitbutton.show(); return app.exec(); 23

24 4.Feladat: kliens tervezés Qdialog, Ui::TripPlanner TripPlanner - _tcpsocket :QTcpSocket - _nextblocksize :qint16 + TripPlanner(QWidget*) - closeconnection() «slot» - connecttoserver() - stopsearch() - updatetablewidget() - sendrequest() - connectionclosedbyserver() - error() felület két gombjának eseménykezelői szoket szignálok eseménykezelői 24

25 4.Feladat: kliens megoldás TripPlanner::TripPlanner(QWidget *parent): QDialog(parent) { setupui(this); QDateTime datetime = QDateTime::currentDateTime(); felület konfigurálása dateedit->setdate(datetime.date()); timeedit->settime(qtime(datetime.time().hour(), 0)); progressbar->hide(); progressbar->setsizepolicy(qsizepolicy::preferred,qsizepolicy::ignored); tablewidget->verticalheader()->hide(); tablewidget->setedittriggers(qabstractitemview::noedittriggers); connect(searchbutton,signal(clicked()), this, SLOT(connectToServer())); connect(stopbutton, SIGNAL(clicked()), this, SLOT(stopSearch())); connect(&_tcpsocket, SIGNAL(connected()), this, SLOT(sendRequest())); connect(&_tcpsocket, SIGNAL(disconnected()), this, SLOT(connectionClosedByServer())); connect(&_tcpsocket, SIGNAL(readyRead()), this, SLOT(updateTableWidget())); connect(&_tcpsocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(error())); eseménykezelés 25

26 4.Feladat: kliens megoldás void TripPlanner::connectToServer() { _tcpsocket.connecttohost(" ", 6178); Vagy kiváltja a connected() szignált, és elindítja a sendrequest()-t kezelőt, vagy az error()-t. a Search gomb aszinkron módon indítja el a kapcsolatépítést; a kapcsolat majd később áll fel konkrét cím helyett a kipróbáláskor QHostAddress::LocalHost-ot használjuk tablewidget->setrowcount(0); searchbutton->setenabled(false); stopbutton->setenabled(true); statuslabel->settext(tr("connecting to server...")); progressbar->show(); A szervertől fogadott soron következő blokk hosszát még nem ismerjük. _nextblocksize = 0; 26

27 4.Feladat: TCP kérés formája A szerver felé megfogalmazunk egy blokként egy kérést QByteArray bináris formában, amely az alábbiakat tartalmazza: típus quint16 quint8 QString QString QDate QTime quint8 jelentés Blokk mérete byte-okban a blokkméret nélkül Kérés típusa (mindig S ) Indulási állomás Érkezési állomás Utazás dátuma Becsült utazási idő Az indulás ( D ) vagy érkezés ( A ) időpontja 27

28 4.Feladat: kliens megoldás Search gomb elindítja void TripPlanner::sendRequest() a keresést { QByteArray block; QDataStream out(&block, QIODevice::WriteOnly); out.setversion(qdatastream::qt_4_1); out << quint16(0) << quint8('s') << fromcombobox->currenttext() << tocombobox->currenttext() << dateedit->date() << timeedit->time(); if (departureradiobutton->ischecked()) out << quint8('d'); else out << quint8('a'); out.device()->seek(0); out << quint16(block.size() - sizeof(quint16)); _tcpsocket.write(block); statuslabel->settext(tr("sending request...")); 28

29 4.Feladat: szerver válasza A szerver blokk-sorozatként küldi a választ: 51 adatok 48 adatok 58 adatok 0xFFFF Egy blokk formája: 51 byte 48 byte 58 byte típus quint16 QDate QTime quint16 quint8 QString jelentés Blokk mérete byte-okban a blokkméret nélkül Indulási dátum Indulási időpont Utazási idő Átszállások száma Vonat típusa 29

30 4.Feladat: kliens megoldás void TripPlanner::updateTableWidget() { QDataStream in(&_tcpsocket); in.setversion(qdatastream::qt_4_1); forever { int row = tablewidget->rowcount(); if (_nextblocksize == 0) { if (_tcpsocket.bytesavailable() < sizeof(quint16)) break; in >> _nextblocksize; if (_nextblocksize == 0xFFFF) { closeconnection(); statuslabel->settext(tr("found %1 trip(s)").arg(row)); break; if (_tcpsocket.bytesavailable() < _nextblocksize) break; 30

31 4.Feladat: megoldás forever { QDate date; QTime departuretime, arrivaltime; quint16 duration, changes; QString traintype; in >> date >> departuretime >> duration >> changes >> traintype; arrivaltime = departuretime.addsecs(duration * 60); tablewidget->setrowcount(row + 1); QStringList fields; fields << date.tostring(qt::localdate) << departuretime.tostring(tr("hh:mm")) << arrivaltime.tostring(tr("hh:mm")) << tr("%1 hr %2 min").arg(duration / 60).arg(duration % 60) << QString::number(changes) << traintype; for (int i = 0; i < fields.count(); ++i) tablewidget->setitem(row, i, new QTableWidgetItem(fields[i])); _nextblocksize = 0; 31

32 4.Feladat: kliens megoldás void TripPlanner::stopSearch(){ statuslabel->settext(tr("search stopped")); closeconnection(); amikor a kliens a Stop gombbal megszakítja a kapcsolatot void TripPlanner::connectionClosedByServer(){ ha a szerver lezárja a kapcsolat, de nem if (_nextblocksize!= 0xFFFF) kaptuk meg az end-of-data jelet. statuslabel->settext(tr("error: Connection closed by server")); closeconnection(); void TripPlanner::error(){ sikertelen kapcsolat indítás esetén statuslabel->settext(_tcpsocket.errorstring()); closeconnection(); void TripPlanner::closeConnection(){ _tcpsocket.close(); searchbutton->setenabled(true); stopbutton->setenabled(false); progressbar->hide(); a szoket lezárása, felület módosítása 32

33 3.Feladat: szerver tervezés TripServer QTcpServer ClientSocket - _nextblocksize :qint16 QTcpSocket + TripServer(QObject*) - incomingconnection(socketid : int) + ClientSocket(QObject*) - generaterandomtrip( ) «slot» - readclient() skip ClientSocket *socket = new ClientSocket(this); socket->setsocketdescriptor(socketid); 33

34 4.Feladat: szerver megoldás ClientSocket::ClientSocket(QObject *parent) : QTcpSocket(parent) { connect(this, SIGNAL(readyRead()), this, SLOT(readClient())); connect(this, SIGNAL(disconnected()), this, SLOT(deleteLater())); _nextblocksize = 0; A klienstől fogadott soron következő blokk hosszát még nem ismerjük. 34

35 4.Feladat: szerver megoldás void ClientSocket::readClient() ha üzenet érkezett a klienstől { QDataStream in(this); in.setversion(qdatastream::qt_4_1); if (_nextblocksize == 0) { if (bytesavailable() < sizeof(quint16)) return; in >> _nextblocksize; if (bytesavailable() < _nextblocksize) return; quint8 requesttype; QString from, to; QDate date; QTime time; quint8 flag; 35

36 4.Feladat: szerver megoldás in >> requesttype; if (requesttype == 'S') { in >> from >> to >> date >> time >> flag; srand(from.length() * to.length() * 60 + time.hour()); int numtrips = rand() % 8; for (int i = 0; i < numtrips; ++i) generaterandomtrip(from, to, date, time); QDataStream out(this); a válasz generálása out << quint16(0xffff); close(); 36

37 4.Feladat: szerver megoldás A valódi szerver mock-olása void ClientSocket::generateRandomTrip(const QString & /* from */, const QString & /* to */, const QDate &date, const QTime &time) { QByteArray block; QDataStream out(&block, QIODevice::WriteOnly); out.setversion(qdatastream::qt_4_1); quint16 duration = rand() % 200; out << quint16(0) << date << time << duration << quint8(1) << QString("InterCity"); out.device()->seek(0); out << quint16(block.size() - sizeof(quint16)); write(block); 37

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Grafikus felületű alkamazások készítése Bevezetés I. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2009 1 www.trolltech.com

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Bevezetés Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 A Qt assistant nyitó ablaka www.trolltech.com 2 Alkalmazás

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. MDI alkalmazás II. (Számla) Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 Számla felépítése fejléc tábla 2 Az alkalmazás

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Memóriajáték 1. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 memorygame Játék közben 2 memorygame Kártyák kiválasztása

Részletesebben

Egységes és objektumközpontú adatbázis-kezelés (2. rész)

Egységes és objektumközpontú adatbázis-kezelés (2. rész) Egységes és objektumközpontú adatbázis-kezelés (2. rész) A folytatásában a bemutatjuk, hogyan kezelhetünk Qt rendszer alatt SQL sormutatót, és készíthetünk grafikus felületet programoknak a Qt Designer

Részletesebben

Eseménykezelés. Aszinkron kommunikáció

Eseménykezelés. Aszinkron kommunikáció Eseménykezelés Aszinkron kommunikáció Feladat Készítsünk egy stoppert, amely másodpercenként jelzi a múló időt. Ez a folyamat egy adott jelzés hatására induljon el; ugyanezen jelzés ismétléseinek hatására

Részletesebben

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 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észletesebben

Kivételkezelés a C++ nyelvben Bevezetés

Kivételkezelés a C++ nyelvben Bevezetés Kivételkezelés a C++ nyelvben Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Kivételkezelés a C++ nyelvben CPP9 / 1 Hagyományos hibakezelés Függvény visszatérési értéke (paramétere) hátrányai:

Részletesebben

Programozás 6. Dr. Iványi Péter

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

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

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

Részletesebben

Socket programozás Példák

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

Részletesebben

Elemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka

Elemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka Elemi alkalmazások fejlesztése III Ajánlott ir odalom Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával Qt dokumentáció online: www.trolltech.com lokális változat: Kdevelop help vagy /usr/share/doc...

Részletesebben

MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa

MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezel ő alkalmazás készítése Kdevelop környezetben I. MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó [root@localhost nacsa]# /usr/bin/safe_mysqld

Részletesebben

Számítógépes Hálózatok. 5. gyakorlat

Számítógépes Hálózatok. 5. gyakorlat Számítógépes Hálózatok 5. gyakorlat PYTHON ALAPOK V. Socket programozás, UDP 2 Óra eleji kiszh Elérés: https://canvas.elte.hu Számítógépes Hálózatok Gyakorlat 1 3 A kommunikációs csatorna kétféle típusa

Részletesebben

Számítógépes Hálózatok. 4. gyakorlat

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,

Részletesebben

Számítógépes Hálózatok GY 4.hét

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

Részletesebben

Elemi alkalmazások fejlesztése IV.

Elemi alkalmazások fejlesztése IV. Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezelő alkalmazás készítése Kdevelop környezetben I. Készítette: Szabóné Nacsa Rozália 1 MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó

Részletesebben

Konkurens TCP Szerver

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ó

Részletesebben

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1 C++ I/O Bevezetés Izsó Tamás 2014. február 20. Izsó Tamás C++ I/O / 1 Section 1 Bevezetés Izsó Tamás C++ I/O / 2 Irodalom Izsó Tamás C++ I/O / 3 Paraméter illesztés függvénynév túlterhelés esetén 1 Pontos

Részletesebben

Feladat. Tervezés és implementálás

Feladat. Tervezés és implementálás Tartalomjegyzék FELADAT...2 Elvárások...2 TERVEZÉS ÉS IMPLEMENTÁLÁS...2 Megjelenési terv...2 Grafikus felület készítése...3 Modulszerkezet...3 Osztály diagram...3 MillMain form...4 Vezérlő k elrendezése...4

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával készítette: Szabóné Nacsa Rozália 1 Ajánlott irodalom Qt dokumentáció online: www.trolltech.com lokális

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Egy ablakos alkalmazás készítése II. C++ / Qt / KDevelop felhasználásával készítette: Szabóné Nacsa Rozália lektorálta: Párniczky Krisztina 1 Fájlkezelés Olvasás 2 A

Részletesebben

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

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,

Részletesebben

Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál. Saját vezérlő használata tervezőben (worldclocks)

Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál. Saját vezérlő használata tervezőben (worldclocks) Tartalomjegyzék Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál...1 Saját vezérlő használata tervezőben (worldclocks)...1 DigitalClock osztály (módosítás)...2 MyForm osztály...3

Részletesebben

Programozás II. ATM példa Dr. Iványi Péter

Programozá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észletesebben

Informatika terméktervezőknek

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

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás Bevezetés I.

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás Bevezetés I. Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 Objektumok közötti kommunikáció (quit)...3 Fordítás/futtatás...4 Grafikus felület létrehozása, vezérlők szinkronizálása

Részletesebben

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. 7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,

Részletesebben

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése FEJLETT PROGRAMOZÁSI NYELVEK, 2009 2. GYAKORLAT - Linux alatti C/C++ programozás Cél: Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Részletesebben

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ó. 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

Részletesebben

Eseménykezelés. Aszinkron kommunikáció

Eseménykezelés. Aszinkron kommunikáció Eseménykezelés Aszinkron kommunikáció Feladat Készítsünk egy stoppert, amely másodpercenként jelzi a múló időt. Ez a folyamat egy adott jelzés hatására induljon el; ugyanezen jelzés ismétléseinek hatására

Részletesebben

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI) Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás

Részletesebben

Számítógépes Hálózatok. 3. gyakorlat

Számítógépes Hálózatok. 3. gyakorlat Számítógépes Hálózatok 3. gyakorlat Teszt canvas.elte.hu Számítógépes Hálózatok Gyakorlat 2 NC-NetCat (SoCat), avagy hálózati svájcibicska # szerver imitálása nc -l -p 1234 # kliens imitálása nc destination_host

Részletesebben

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer 1 Fájl rendszer Terminológia Fájl és könyvtár (mappa) koncepció Elérési módok Fájlattribútumok Fájlműveletek ----------------------------------------- Könyvtár szerkezet -----------------------------------------

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

Számítógépes Hálózatok GY 6.hét

Szá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észletesebben

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Hálózati architektúrák és Protokollok GI Kocsis Gergely Hálózati architektúrák és Protokollok GI - 10 Kocsis Gergely 2015.11.30. FTP File Transfer Protocol Legegyszerűbb FTP parancsok: USER name PASS jelszo CD, RETRIEVE, STORE, MKDIR, RMDIR, HELP, BYE Feladat:

Részletesebben

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását.

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását. 1. Motiváció C nyelvben a printf és a scanf függvények használata a programozótól nagy körültekintést igényel. A változó számú argumentum miatt a fordító nem tudja ellenőrizni, hogy a formátum mezőben

Részletesebben

A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra:

A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra: A Rajzolás lap A rajzolás lap elemi rajzolási lehetőségek bemutatására szolgál. A rajzolás a jobboldali pnlright widget egyik lapjára rakott widgetre történik. A pnlright egy több lapot tartalmazó widget

Részletesebben

Kommunikáció Androidon Mobilinternet Wifi

Kommuniká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észletesebben

3D-s számítógépes geometria és alakzatrekonstrukció

3D-s számítógépes geometria és alakzatrekonstrukció 3D-s számítógépes geometria és alakzatrekonstrukció 3a. Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Salvi Péter BME, Villamosmérnöki

Részletesebben

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

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

Részletesebben

Há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. 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észletesebben

QLabel *label = new Qlabel("Hello Qt!",0);

QLabel *label = new Qlabel(Hello Qt!,0); #include #include int main(int argc,char **argv) QApplication app(argc,argv); QLabel *label = new Qlabel("Hello Qt!",0); app.setmainwidget(label); label->show(); return app.exec();

Részletesebben

Programozás II. 2. Dr. Iványi Péter

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

Részletesebben

Számítógépes Hálózatok GY 7.hét

Számítógépes Hálózatok GY 7.hét Számítógépes Hálózatok GY 7.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észletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 1/3

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 1/3 Tartalomjegyzék Feladat...2 A számla elemei...2 A dokumentumot tároló fájl felépítése...3 A számlakészítő program osztálydiagramja...4 Field osztály...4 field.h...4 field.cpp...5 Fields osztály...6 fields.h...6

Részletesebben

Programozás I. 5. Előadás: Függvények

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

Részletesebben

Elemi alkalmazások fejlesztése IV. Adatbáziskezel alkalmazás készítése QtDesignerben. Készítette: Szabóné Nacsa Rozália

Elemi alkalmazások fejlesztése IV. Adatbáziskezel alkalmazás készítése QtDesignerben. Készítette: Szabóné Nacsa Rozália Elemi alkalmazások fejlesztése IV. Adatbáziskezel ő alkalmazás készítése QtDesignerben Készítette: Szabóné Nacsa Rozália 1 Származtatásos modulszerkezet Q t form.ui U formbase.h Örökl ő dés form.h formbase.cpp

Részletesebben

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)

Részletesebben

API tervezése mobil környezetbe. gyakorlat

API tervezése mobil környezetbe. gyakorlat API tervezése mobil környezetbe gyakorlat Feladat Szenzoradatokat gyűjtő rendszer Mobil klienssel Webes adminisztrációs felület API felhasználói Szenzor node Egyirányú adatküldés Kis számítási kapacitás

Részletesebben

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Java 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észletesebben

11. Gyakorlat: Certificate Authority (CA), FTP site-ok

11. Gyakorlat: Certificate Authority (CA), FTP site-ok 11. Gyakorlat: Certificate Authority (CA), FTP site-ok 11.1. A CA szerver szerepkör telepítése a DC01-es szerverre 11.2. Az FTP szervíz telepítése a DC01-es szerverre 11.3. A szükséges DNS rekordok létrehozása

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés modell/nézet architektúrában

Eseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés modell/nézet architektúrában Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 8. előadás Adatbázis-kezelés modell/nézet architektúrában 2013.04.17. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 2/3

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 2/3 Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Modell-nézet (model-view) tervezési minta (bevezetés)...3 Számlatételek kezelése, karbantartása ( táblázat kezelés )...4 A táblázatkezelő

Részletesebben

Pick Pack Pont kereső és boltválasztó alkalmazás

Pick Pack Pont kereső és boltválasztó alkalmazás Pick Pack Pont kereső és boltválasztó alkalmazás www.pickpackpont.hu online.sprinter.hu/terkep Dokumentáció V5 2018. október Sprinter Futárszolgálat Kft. 2018. Minden jog fenntartva! Tartalomjegyzék Funkciók

Részletesebben

Objektum 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 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észletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Folyamok kezelése Fájlok írása/olvasása Folyamok kezelése Szabvány folyamok Eddig Kiírás a szöveges konzolra:

Részletesebben

Az állományok kezelésére használt fontosabb parancsok

Az állományok kezelésére használt fontosabb parancsok Függelék a 3 fejezethez Az állományok kezelésére használt fontosabb parancsok Tartalom Az ls parancs1 A mkdir parancs2 Az rmdir parancs2 A cp parancs3 A rm parancs4 Az mv parancs4 Az állományok kezeléséhez

Részletesebben

Mobil informatika gyakorlat. 2. óra: NFC a gyakorlatban

Mobil informatika gyakorlat. 2. óra: NFC a gyakorlatban Mobil informatika gyakorlat 2. óra: NFC a gyakorlatban Mi az NFC? Near Field Communication Rövid hatótávolságú rádiófrekvenciás technológia (tipikusan 5-10 cm) 13,56 MHz frekvencia Az ISO/IEC 14443 szabvány

Részletesebben

Szövegek C++ -ban, a string osztály

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

Részletesebben

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE 2015-16 Classic Empire - A turn Based Wargame Classic Empire is a real time, multiplayer, Internet-based game, featuring military, diplomatic, and economic

Részletesebben

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek

Részletesebben

Budapest, 2007. március. ELTE Informatikai Kar

Budapest, 2007. március. ELTE Informatikai Kar Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 A projekt elkészítésének lépései...3 Objektumok közötti kommunikáció (quit)...3 A projekt elkészítésének

Részletesebben

osztályok kapcsolata Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1

osztályok kapcsolata Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1 Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1 Dinamikus tagváltozó az osztályban class RVektor { i n t n ; R a c i o n a l i s p ; p u b l i c : RVektor ( i n t n=10 ) :

Részletesebben

KIRA. KIRA rendszer. Telepítési útmutató v1

KIRA. KIRA rendszer. Telepítési útmutató v1 KIRA rendszer Telepítési útmutató v1 1. Bevezetés A dokumentáció, illetve a dokumentáció mellékleteként megtalálható állományok segítségével készíthető fel a kliens oldali számítógép a KIRA rendszer működtetésére.

Részletesebben

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

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.

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I 10. előadás. Adatbázis-kezelés modell/nézet architektúrában. Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése I 10. előadás. Adatbázis-kezelés modell/nézet architektúrában. Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 10. előadás Adatbázis-kezelés modell/nézet architektúrában Giachetta Roberto http://people.inf.elte.hu/groberto

Részletesebben

Kiszolgálók üzemeltetése FTP. Iványi Péter

Kiszolgálók üzemeltetése FTP. Iványi Péter Kiszolgálók üzemeltetése FTP Iványi Péter FTP File Transfer Protocol Abhay Bhushan, RFC 114, 1971 RFC 765, 1980 RFC 959, 1985 File-ok fel- és letöltése egy szerverről Két port-ot használ, out-of-band (sávon

Részletesebben

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte.

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ó

Részletesebben

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Készítette: Gregorics Tibor Szabóné Nacsa Rozália Alakítsunk át egy infix formájú aritmetikai kifejezést postfix

Részletesebben

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. 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

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

Részletesebben

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;

Részletesebben

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI

Részletesebben

ProFTPD. Molnár Dániel. 2005. október. 02. 1. oldal

ProFTPD. Molnár Dániel. 2005. október. 02. 1. oldal ProFTPD Molnár Dániel 2005. október. 02 1. oldal Tartalomjegyzék 1.Telepítés és indítás...3 1.1.Telepítés Ubuntu Linux alatt:...3 1.2.Telepítés bináris csomagból...3 1.3.A program indítása...3 2.Konfiguráció...3

Részletesebben

A belső hálózat konfigurálása

A belső hálózat konfigurálása DHCP A belső hálózat konfigurálása Hozzuk létre a virtuális belső hálózatunkat. Szerver (Windows 2012) SWITCH Kliens gép (Windows 7) Hálózati kártya (LAN1) Hálózati kártya (LAN1) Állítsunk be egy lan1

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III Qt SDI alkalmazás készítése I Kdevelop környezetben Készítette: Szabóné Nacsa Rozália Steingart Ferenc 1 Feladat Készítsünk egy számlakezel ő ablakos alkalmazást! Számlafejléc

Részletesebben

Számítógépes Hálózatok. 7. gyakorlat

Számítógépes Hálózatok. 7. gyakorlat Számítógépes Hálózatok 7. gyakorlat Gyakorlat tematika Hibajelző kód: CRC számítás Órai / házi feladat Számítógépes Hálózatok Gyakorlat 7. 2 CRC hibajelző kód emlékeztető Forrás: Dr. Lukovszki Tamás fóliái

Részletesebben

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java 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észletesebben

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely 1.feladat (max02a) Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely maximális elemét. A tömb hosszát a fájl els ı eleme tartalmazza.a fájl nevét a szabványos bemeneten kérjük

Részletesebben

C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat

C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/12 Input-output

Részletesebben

ISA szimulátor objektum-orientált modell (C++)

ISA szimulátor objektum-orientált modell (C++) Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált

Részletesebben

Az SQL*Plus használata

Az SQL*Plus használata Az SQL*Plus használata Célkitűzés Bejelentkezés az SQL*Plus-ba SQL utasítások szerkesztése Az eredmény formázása SQL*Plus utasításokkal Szkriptfájlok használata Az SQL és az SQL*Plus kapcsolata SQL*Plus

Részletesebben

Számítógépes hálózatok

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.

Részletesebben

BioAdmin 4.1 könnyű telepítés csak Kliens használatra

BioAdmin 4.1 könnyű telepítés csak Kliens használatra 1 BioAdmin 4.1 könnyű telepítés csak Kliens használatra A BioAdmin 4.1 programot szerver-kliens működésre fejlesztették, de ennek a leírásnak a használatával feltelepíthető a számítógépre normál (csak

Részletesebben

Teleoperáció Robot vezérlése IP-hálózaton

Teleoperáció Robot vezérlése IP-hálózaton Teleoperáció Robot vezérlése IP-hálózaton Simon Csaba Z56IGL Konzulens: dr. Kiss Bálint Önálló laboratórium 1. Beszámoló 2009. MÁJUS. 17. 1. Bevezetés Önálló laboratóriumi feladatom alapgondolata az volt,

Részletesebben

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/eaf4/ Qt 4 2007

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Bevezetés Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 EAF3 Qt4 Bevezetés (mod01) 1 A Qt assistant nyitó ablaka www.trolltech.com

Részletesebben

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Hálózati architektúrák és Protokollok GI Kocsis Gergely Hálózati architektúrák és Protokollok GI - 11 Kocsis Gergely 2015.12.06. FTP File Transfer Protocol Legegyszerűbb FTP parancsok: USER name PASS jelszo CD, RETRIEVE, STORE, MKDIR, RMDIR, HELP, BYE Feladat:

Részletesebben

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 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:

Részletesebben

LINUX PMB2506-2 LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB

LINUX PMB2506-2 LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB LINUX PMB2506-2 LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB LINUX PARANCSOK ÉS HASZNÁLATUK ls: listázás -l részletes lista -a rejtett fájlok megjelenítése cp: fájlok másolása -i Már létező cél felülírása előtt

Részletesebben

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet    Copyright 2008 Johanyák Zsolt Csaba Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen

Részletesebben

Java és web programozás

Java é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észletesebben

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

MicroSigner Közvetítő Szerver fejlesztői dokumentáció MICROSEC ZRT. MicroSigner Közvetítő Szerver fejlesztői dokumentáció verzió: 1.0 Ivicsics Sándor, Máté Norbert, Vanczák Gergely 2016.06.09. Tartalom Általános információk... 2 ESign munkamenet létrehozása...

Részletesebben

20. Tétel 1.0 Internet felépítése, OSI modell, TCP/IP modell szintjenek bemutatása, protokollok Pozsonyi ; Szemenyei

20. Tétel 1.0 Internet felépítése, OSI modell, TCP/IP modell szintjenek bemutatása, protokollok Pozsonyi ; Szemenyei Internet felépítése, OSI modell, TCP/IP modell szintjenek bemutatása, protokollok 28.Tétel Az Internet Felépítése: Megjegyzés [M1]: Ábra Az Internet egy világméretű számítógép-hálózat, amely kisebb hálózatok

Részletesebben

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

Részletesebben

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK Mérési Utasítás Linux/Unix jogosultságok és fájlok kezelése Linux fájlrendszerek és jogosultságok Linux alatt, az egyes fájlokhoz való hozzáférések szabályozása érdekében a fájlokhoz tulajdonost, csoportot

Részletesebben