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

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

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

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

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

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

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

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

Socket programozás Példák

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

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

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

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

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

Dr. Varga Imre Debreceni Egyetem, Informatikai Kar. Socket-programozás. C nyelven, Linux alatt

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

Dr. Varga Imre. Socket-programozás. C nyelven

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

Kommunikáció - Wi-Fi, Mobil internet - Bluetooth - GSM / GPRS és SMS - NFC

Hálózati architektúrák laborgyakorlat

Számítógép-hálózatok: 4. Labor. TCP kliens. A gyakorlat célja:

Programozás alapjai. 5. előadás

Adatbázis használata PHP-ből

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

Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M)

2018, Funkcionális programozás

Java hálózatkezelés II. szerver-kliens kapcsolat szálkezelés JAVA PROGRAMOZÁS 10. GYAKORLAT

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

TCP szerver. TCP szerver alkalmazás írásának az elsajátítása TCP protokoll tulajdonságainak a tanulmányozása kisérleti úton

Kommunikáció Androidon Mobilinternet Wifi

Python bevezető foglalkozás Python bevezető foglalkozás

Programozás I gyakorlat

Számítógépes Hálózatok. 1. Gyakorlat

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

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Ütemezett küldés fogyasztásmérő óra állásról inels-bus rendszerben

Információs Technológia

9. MPI

Java Programozás 1. Gy: Java alapok. Ismétlés ++

C programozási nyelv

Mintavételes szabályozás mikrovezérlő segítségével

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

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

ELTE, IK, Információs Rendszerek Tanszék

3. Gyakorlat Ismerkedés a Java nyelvvel

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Python tanfolyam Python bevezető I. rész

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

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

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Hálózatok építése és üzemeltetése

2018, Funkcionális programozás

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Tisztelt Telepítő! A központ és az alkalmazás összehangolását a következőképpen hajthatja végre:

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

InFo-Tech emelt díjas SMS szolgáltatás. kommunikációs protokollja. Ver.: 2.1

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Microsoft Windows XP. Feladatgyűjtemény

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

C programozási nyelv

kommunikáció Feladatgyűjtemény

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

Nagy HF u tmutato 2011/2012 II. fe le v

Gyakorló feladatok Gyakorló feladatok

WDS 4510 adatátviteli adó-vevő

2018, Funkcionális programozás

Kommunika cio s protokoll. Verzió 1.0

Óbudai Egyetem. C programozási nyelv

1. Ismerkedés a Hyper-V-vel, virtuális gépek telepítése és konfigurálása

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

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

GOOSE üzenetküldés korszerű alállomásokban. Előadás: Rózsa Gábor

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

KFKI Unified Messaging Server (UMS) Felhasználói Útmutató

Sapientia Egyetem, Matematika-Informatika Tanszék.

Nokia N97_mini (Mail for Exchange) beállítása Virtualoso levelezésre

Occam 1. Készítette: Szabó Éva

MKOSZ Online Support - Felhasználói

Kommunikáció Androidon Mobilinternet Wifi

Kommunikáció Androidon GSM hívás SMS küldés, fogadás Bluetooth NFC USB

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

VIRTUÁLIS GRAFFITI ÜZENETHAGYÓ RENDSZER

MEDITOR 5 KLÓN telepítési segédlete

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

2. fejezet Hálózati szoftver

FortiClient VPN-IPSec kliens konfigurációs segédlet

OKTATÁSKUTATÓ ÉS FEJLESZTŐ INTÉZET TÁMOP-3.1.5/ Pedagógusképzés támogatása

Programozási nyelvek Java

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

UNIX: folyamatok kommunikációja

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

BME MOGI Gépészeti informatika 13.

MVC. Model View Controller

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

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

2018, Diszkrét matematika

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül

Átírás:

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 Kód: 2

Ismétlés Python Socket programozás Ismétlés 3

Ismétlés TCP 4

Ismétlés TCP socket() bind() listen() accept() sock = socket.socket(socket.af_inet, socket.sock_stream) server_address = ('localhost', 10000) sock.bind(server_address) sock.listen(1) connection, client_address = sock.accept() 5

Ismétlés TCP send(), sendall() recv() close() connect() connection.sendall(data) data = connection.recv(16) connection.close() server_address = ('localhost', 10000) sock.connect(server_address) 6

Struktúra küldése Binárissá alakítjuk az adatot import struct values = (1, 'ab', 2.7) packer = struct.struct('i 2s f') packed_data = packer.pack(*values) #Int, char[2], float Visszaalakítjuk a kapott üzenetet import struct unpacker = struct.struct('i 2s f') unpacked_data = unpacker.unpack(data) megj.: integer 1 4 byte, stringként 1 byte, azaz hatékonyabb stringként átküldeni. 7

Gyakorló feladat - Számológép Készítsünk egy szerver-kliens alkalmazást, ahol a kliens elküld 2 számot és egy operátort a szervernek, amely kiszámolja és visszaküldi az eredményt. A kliens üzenete legyen struktúra. Mininet-ben futtassuk a szerver és kliens alkalmazásokat két különböző hoszton és tcpdump segítségével nézzük meg, hogy milyen forgalmat generáltunk? 8

Select setblocking() or settimeout() select() connection.setblocking(0) # or connection.settimeout(1.0) inputs = [ server ] outputs = [ ] timeout=1 readable, writable, exceptional = select.select(inputs, outputs, inputs, timeout) for s in readable: if s is server: #new client connect connection, client_address = server.accept() print('new client from %s:%d' % client_address) inputs.append( connection ) else:. #handle client 9

Gyakroló feladat Számológép II. Alakítsuk át úgy a számológép szervert, hogy egyszerre több klienssel is képes legyen kommunikálni! Ezt a select függvény segítségével tegye! Alakítsuk át a kliens működését úgy, hogy ne csak egy kérést küldjön a szervernek, hanem csatalakozás után 5 kérés-válasz üzenetváltás történjen, minden kérés előtt 2 mp várakozással (time.sleep(2))! A kapcsolatot csak a legvégén bontsa a kliens! 10

Gyakorló feladat Chat Készítsünk egy chat alkalmazást, amelyen a chat szerverhez csatlakozott kliensek képes beszélni egymással! A szerver szerepe, hogy a kliensektől jövő üzenetet minden más kliensnek továbbítja névvel együtt: [<név>] <üzenet> ; pl. [Józsi] Kék az ég! A kliensek a szervertől jövő üzeneteket kiírják a képernyőre. 11

Házi feladat 2 pont Készítsünk egy barkóba alkalmazást. A szerver legyen képes kiszolgálni több klienst. A szerver válasszon egy egész számot 1..100 között véletlenszerűen. A kliensek próbálják kitalálni a számot. A kliens üzenete egy összehasonlító operátor: <, >, = és egy egész szám, melyek jelentése: kisebb-e, nagyobb-e, mint az egész szám, illetve rákérdez a számra. A kérdésekre a szerver Igen/Nem/Nyertél/Kiestél/Vége üzenetekkel tud válaszolni. A Nyertél és Kiestél válaszok csak a rákérdezés (=) esetén lehetségesek. Ha egy kliens kitalálta a számot, akkor a szerver minden újabb kliens üzenetre az Vége üzenetet küldi, amire a kliensek kilépnek. A szerver addig nem választ új számot, amíg minden kliens ki nem lépett. Nyertél, Kiestél és Vége üzenet fogadása esetén a kliens bontja a kapcsolatot és terminál. Igen/Nem esetén folytatja a kérdezgetést. A kommunikációhoz TCP-t használjunk! Folytatás a következő oldalon! 12

Házi feladat 2 pont A kliens logaritmikus keresés segítségével találja ki a gondolt számot. A kliens tudja, hogy milyen intervallumból választott a szerver. AZAZ a kliens NE a standard inputról dolgozzon. Minden kérdés küldése előtt véletlenszerűen várjon 1-5 mp-et. Ezzel több kliens tesztelése is lehetséges lesz. Folytatás a következő oldalon! 13

Házi feladat 2 pont Üzenet formátum: Klienstől: bináris formában egy db karakter, 32 bites egész szám A karakter lehet: <: kisebb-e, >: nagyobb-e, =: egyenlő-e Szervertől: ugyanaz a bináris formátum, de a számnak nincs szerepe (bármi lehet) A karakter lehet: I: Igen, N: Nem, K: Kiestél, Y: Nyertél, V: Vége Fájlnevek és parancssori argumentumok: Szerver: server.py <bind_address> <bind_port> # A bindolás során használt pár Kliens: client.py <server_address> <server_port> # A szerver elérhetősége Beadási határidő: 2019.03.17. 23:59 BEAD rendszer 14

Vége Köszönöm a figyelmet! 15