Programiranje Soketa u C

Preview:

DESCRIPTION

PROGRAMIRANJE

Citation preview

Programiranje soketa

Vježbe br. 3

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?

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)

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)

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)

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

TCP klijent

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

TCP bazirani soketi

TCP Server kod

TCP klijent kod

Nekonekcione komunikacije

socket bind: opcionalno sendto, recvfrom shutdown close

Nekonekcione komunikacije

UDP Server

UDP klijent

Recommended