Uvod u Python

Слични документи
Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

Повезивање са интернетом

Računarske mreže i mrežne tehnologije 10. termin 1. TRANSPORTNI SLOJ Transportni sloj nije još samo jedan od mnogih slojeva jer je njegova uloga sama

DIGITALNA OBRADA SLIKE

PowerPoint Presentation

Mrežno računarstvo

DIGITALNA OBRADA SLIKE

POSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE

Rad u mrežnom okruženju Osnove informatike s primjenom računala

R u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s

Microsoft PowerPoint - 06 Uvod u racunarske mreze.ppt

Microsoft Word - IP_Tables_programski_alat.doc

Повезивање са интернетом

Korisničko uputstvo za uslugu ClickPay u Internet bankarstvu KJKP Toplane Sarajevo 1. OPIS USLUGE Usluga ClickPay omogućava prijem unaprijed popunjeno

DIGITALNA OBRADA SLIKE

SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Kristijan Perković Mrežna igra Potapanje brodova u programskom jeziku C++ ZA

Mrežno računarstvo

Web programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju

PowerPoint Presentation

Generated by Foxit PDF Creator Foxit Software For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

IEP - Projekat 2018/2019

PowerPoint Presentation

PowerPoint Presentation

Slide 1

Dijagrami sekvenci

USLOVI I TARIFE PLATNOG PROMETA I KARTICA ZA POSLOVNE SUBJEKTE U primjeni od godine u skladu sa Odlukom broj 527/19 od godine

Tutoring System for Distance Learning of Java Programming Language

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

Microsoft PowerPoint - vjezbe_04.ppt

Tutoring System for Distance Learning of Java Programming Language

PowerPoint Presentation

Microsoft Word - CCERT-PUBDOC doc

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Microsoft PowerPoint - 01 Uvod u operativne sisteme.ppt

Microsoft PowerPoint - 2. PREDAVANJE - Umrežavanje i mrežno usmjeravanje

XHTML 2.0 and HTML 5

PowerPoint Presentation

Microsoft Word - SYLLABUS -Dinamicki

Opći uvjeti korištenja servisa e-Račun za državu povezivanjem_obveznici javne nabave_052019_konačna verzija

Korisničko uputstvo mobilne aplikacije Digitalni Kiosk 1

Elektronsko bankarstvo Uputstvo za korišćenje

SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Miroslav Šafarić PROGRAM ZA TESTIRANJE MREŽNIH APLIKACIJA ZAVRŠNI RAD Varažd

Microsoft Word - IWT0906R.doc

SVEUČILIŠTE U ZAGREBU FAKULTET ORANIZACIJE I INFORMATIKE VARAŽDIN Antonio Glešić Aplikacija za razmjenu tekstualnih poruka unutar tematskih skupina ZA

Internet

ARHITEKTURA I ORGANIZACIJA RAČUNARA

PowerPoint Presentation

KORISNIČKO UPUTSTVO Online ekspozitura - krediti 05/19 C-EBKWU-02

Terminski_plan_rada

m-intesa ZA KRETANJE BEZ GRANICA... INTESA SANPAOLO BANKA ZA UREĐAJE SVIJET MOGUĆEG.

UNION Banka DD Sarajevo Tel.: Dubrovačka br Sarajevo, Bosna i Hercegovina Fax:

Microsoft Word - AddikoChatBanking - Uputa za koristenje_ _v0.3.docx

CRNA GORA ZAVOD ZA STATISTIKU S A O P Š T E NJ E Broj: 281 Podgorica, 31. oktobar god. Prilikom korišćenja ovih podataka navesti izvor Upotreba

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

sv-lncs

Slide 1

Korisničko uputstvo za uslugu ClickPay u Mobilnom bankarstvu BIHAMK 1. OPIS USLUGE Usluga ClickPay omogućava prijem unaprijed popunjenog naloga za pla

Microsoft Word - DNS_DHCP.doc

PHP kod

CPHP_19

CRNA GORA ZAVOD ZA STATISTIKU S A O P Š T E NJ E Broj: 282 Podgorica, 1 novembar god. Prilikom korišćenja ovih podataka navesti izvor Upotreba i

ISPITNI ZADATAK iz Softverskog inženjerstva Filip Nikšić 7. rujna 2009.

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Domaći zadatak - GUI (rok za sve grupe je ) Napraviti repozitorijum na GitHub-u koji se zove MenjacnicaGUI i postaviti Eclipse projekat menj

Napredno web programiranje

** Osnovni meni

i pernica v3.qxp

Uvod u računarstvo 2+2

CRNA GORA ZAVOD ZA STATISTIKU S A O P Š T E NJ E Broj: 229 Podgorica, 30. oktobar god. Prilikom korišćenja ovih podataka navesti izvor Upotreba

ZIS

PowerPoint Template

Primenjeno programiranje - vezbe GUI i baze podataka

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

Slide 1

WAMSTER Prezentacija

Document ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata

Упутство за коришћење АМРЕС FileSender услуге

Електротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику ИР3ПИА - Пројекат из предмета Програмирање интернет аплик

Upute-podesavanj -accounta

Microsoft Word - Uputa_WEB_pristup_predmetima_ ver1.doc

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Dodatne usluge za VOIP priključak:

Microsoft PowerPoint - podatkovni promet za objavu.pptx

UPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS

CARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:

Lorem ipsum dolor sit amet lorem ipsum dolor

NACIONALNI REGISTAR IZVORA ZAGAĐIVANJA UPUTSTVO ZA KORIŠĆENJE INFORMACIONOG SISTEMA NACIONALNOG REGISTRA IZVORA ZAGAĐIVANJA Beograd, 2014.

Programski jezik C

CRNA GORA ZAVOD ZA STATISTIKU S A O P Š T E NJ E Broj: 295 Podgorica, 31. oktobar godine Prilikom korišćenja ovih podataka navesti izvor Upotreb

12 Stanje

COMARC/A Format

Microsoft Word - 6. RAZRED INFORMATIKA.doc

Студијски програм: ИНДУСТРИЈСКО ИНЖЕЊЕРСТВО

Студијски програм: ИНДУСТРИЈСКО ИНЖЕЊЕРСТВО

Писање и превођење модула

Препоруке безбедности мрежних сервиса Copyright 2015 АМРЕС

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

Транскрипт:

Uvod u mrežno programiranje Slavica Tomović (slavicat@ucg.ac.me) Elektrotehnički fakultet, Podgorica Univerzitet Crne Gore

2 Programiranje soketa cilj: naučiti kako se razvijaju klijent/server aplikacije koje komuniciraju preko soketa soket: krajnje tačke end-to-end transportne konekcije između dva aplikacijska procesa aplikacija proces soket aplikacija proces Kontrolisan od strane developer-a aplikacije transport mreža link Internet transport mreža link Kontrolisani od strane operativnog sistema fizički nivo fizički nivo

Programiranje soketa Dva tipa soketa za dva tipa transportnih servisa: UDP: nepouzdan prenos TCP: pouzdan prenos, stream bajtova Primjer Aplikacije: 1. Klijent čita liniju podataka unesenih putem tastature i šalje je serveru. 2. Server prihvata podatke i kovertuje karaktere u velika slova (uppercase). 3. Server šalje modifikovane podatke klijentu. 4. Klijent prihvata modifikovane podatke i štampa ih na ekranu.

Programiranje UDP soketa UDP: nema konekcije između klijenta i servera nema kontrolne komunikacije prije slanja podataka pošiljalac eksplicitno dodaje destinacionu IP adresu i broj porta svakom paketu primalac ekstraktuje IP adresu i broj porta pošiljaoca iz primljenog paketa UDP: poslati podaci se mogu izgubiti ili primiti neredosledno Sa aspekta aplikacije: UDP pruža nepouzdan prenos grupe datagrama između klijenta i servera

Klijent-server interakcija: UDP server (koristi serverip) kreiraj soket, port= x: serversocket = DatagramSocket(x) učitaj datagram iz serversocket klijent kreiraj soket: clientsocket = DatagramSocket() kreiraj datagram sa IP adresom i brojem porta servera (port=x); pošalji datagram sa clientsocket napiši odgovor za serversocket navodeći IP adresu i broj porta klijenta učitaj datagram iz clientsocket zatvori clientsocket

Primjer aplikacije: UDP klijent Python biblioteka za sokete kreira UDP soket za server učitavanje unosa sa tastature dodavanje imena server i destinacinog porta u poruku koja se šalje soketom učitavanje modifikovanih karaktera u string štampa primljeni string i zatvara soket Python UDPClient import socket servername = alias ili IP adresa servera serverport = 12000 clientsocket = socket.socket(socket.af_inet, socket.sock_dgram) message = raw_input( Unesite rečenicu malim slovima: ) clientsocket.sendto(message,(servername, serverport)) modifiedmessage, serveraddress = clientsocket.recvfrom(2048) print modifiedmessage clientsocket.close()

Primjer aplikacije: UDP server Python UDPServer kreira UDP soket pridružuje soket lokalnom broju porta 12000 beskonačna petlja učitava podatke iz UDP soketa u varijablu message i eskraktuje klijentovu IP adresu i broj porta from socket import * serverport = 12000 serversocket = socket(af_inet, SOCK_DGRAM) serversocket.bind(('', serverport)) print Server je spreman za prijem podataka while 1: message, clientaddress = serversocket.recvfrom(2048) modifiedmessage = message.upper() serversocket.sendto(modifiedmessage, clientaddress) Šalje string sa velikim slovima klijentu

Programiranje TCP soketa klijent mora kontaktirati server prije slanja podataka server mora biti već pokrenut server mora imati soket za prihvatanje klijentskih konekcija klijent se povezuje sa serverom: kreiranjem TCP soketa, navodeći IP adresu i broj porta serverskog procesa server prihvata konekciju: kreiranjem novog za konekciju rezervisanog soketa server može simultatno komunicirati sa više klijenata Sa aspekta aplikacije: TCP pruža pouzdan, redosledan prenos toka bajtova ( pipe ) između klijenta i servera

Klijent-server interakcija: TCP server (koristi serverip) klijent kreiranje soketa sa brojem porta x: serversocket = ServerSocket() čeka se dolazni zahtjev za uspostavljanje konekcije connectionsocket = serversocket.accept() TCP uspostavljanje konekcije kreiranje soketa, povezivanje na serverip, port=x clientsocket = socket() učitavanje zahtjeva iz connectionsocket upis odgovora u connectionsocket zatvaranje connectionsocket slanje zahtjeva sa clientsocket učitavanje odgovora iz clientsocket zatvaranje clientsocket

Primjer aplikacije: TCP klijent kreirati TCP socket za serverip, udaljeni port 12000 nema potrebe za navođenjem IP adrese servera i destinacionag broja porta Python TCPClient import socket servername = alias ili IP adresa servera serverport = 12000 clientsocket = socket.socket(socket.af_inet, socket.sock_stream) clientsocket.connect((servername,serverport)) message = raw_input( Unesite rečenicu malim slovima: ) clientsocket.send(message) modifiedmessage = clientsocket.recv(1024) print Od servera:, modifiedmessage clientsocket.close()

Primjer aplikacije: TCP server kreiranje TCP soketa za prijem zahtjeva server osluškuje dolazne TCP zahtjeve beskonačna petlja server čeka na accept(), kreira se novi soket preko kojeg prihvata poruku učitavanje bajtova iz soketa (ali ne i adresa kao kod UDP-a) zatvaranje konekcije ali ne i soketa za prijem TCP zahtjeva Python TCPServer from socket import * serverport = 12000 serversocket = socket(af_inet,sock_stream) serversocket.bind((,serverport)) serversocket.listen(1) print Server je spreman za prijem podataka while 1: connectionsocket, addr = serversocket.accept() sentence = connectionsocket.recv(1024) capitalizedsentence = sentence.upper() connectionsocket.send(capitalizedsentence) connectionsocket.close()

Dodatna dokumentacija http://python.org/ - dokumentacija, tutorijali... Knjige: Learning Python, Mark Lutz Python Essential Reference, David Beazley Python Cookbook, Martelli, Ravenscroft and Ascher (online http://code.activestate.com/recipes/langs/python/) http://wiki.python.org/moin/pythonbooks