14
Programiranje soketa Vježbe br. 3

Programiranje Soketa u C

Embed Size (px)

DESCRIPTION

PROGRAMIRANJE

Citation preview

Page 1: Programiranje Soketa u C

Programiranje soketa

Vježbe br. 3

Page 2: Programiranje Soketa u C

Uvod

Soketi su metod za kreiranje konekcije između procesa koji ne zavisi od protokola

Mogu biti konekcioni ili nekonekcioni – da li se uspostavlja konekcija prije komunikacije ili svaki paket opisuje destinaciju?

Page 3: Programiranje Soketa u C

Uvod Sokete karakterišu njihova domena, tip i

transportni protokol Najčešće domene su: AF UNIX (format

adrese je kao kod UNIX-a) i AF INET (format adrese je host i broj porta)

Najčešći tipovi su: virtualni kanal (primljeni prema redoslijedu slanja i pouzdano) i datagram (proizvoljan redoslijed, nepouzdan)

Page 4: Programiranje Soketa u C

Uvod

Svaki tip soketa ima jedan ili više protokola: npr. TCP (virtualni kanal) ili UDP (datagram)

Konekciono bazirani soketi komuniciraju po principu klijent-server (server čeka uspostavu konekcije od strane klijenta)

Nekonekcioni soketi su ravnopravni (peer-to-peer, svaki proces je simetričan)

Page 5: Programiranje Soketa u C

Soket API socket: kreira soket date domene, tipa, protokola

(kupovina telefona) bind: dodjeljuje ime soketu (dobijanje telefonskog broja) listen: specificira broj konekcija na čekanju koje mogu

biti primljene u red čekanja na soketu servera (pozivi na čekanju)

accept: server prihvata zahtjev za uspostavom konekcije od strane klijenta (javljanje na telefon)

connect: klijent zahtjeva uspostavu konekcije sa serverom (poziv)

send, sendto: slanje podataka prema konekciji (govor) recv, recvfrom: primanje podataka od konekcije

(slušanje) shutdown: završetak konekcije (prekidanje razgovora)

Page 6: Programiranje Soketa u C

Konekciono bazirana komunikacija na serveru socket: kreira soket bind: daje adresu soketa serveru listen: specificira maksimalni broj zahjteva za

konekcijom koji mogu biti na čekanju za dati proces

accept: uspostavlja konekciju sa specifičnim klijentom

send,recv: stream bazirani ekvivalenti čitanja i pisanja

shutdown: završetak čitanja ili pisanja close: otpuštanje podatkovnih struktura kernela

Page 7: Programiranje Soketa u C

TCP klijent

socket: kreira soket connect: konektuje se na server send,recv: (slanje, primanje) shutdown close

Page 8: Programiranje Soketa u C

TCP bazirani soketi

Page 9: Programiranje Soketa u C

TCP Server kod

Page 10: Programiranje Soketa u C

TCP klijent kod

Page 11: Programiranje Soketa u C

Nekonekcione komunikacije

socket bind: opcionalno sendto, recvfrom shutdown close

Page 12: Programiranje Soketa u C

Nekonekcione komunikacije

Page 13: Programiranje Soketa u C

UDP Server

Page 14: Programiranje Soketa u C

UDP klijent