Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[MREPRO] 2. laboratorijska vježba - 2019/2020

Sashat_Triceps

Jel netko možda već počeo raditi na labosu? Ako da, kako riješiti za bota kad šalje payloadove žrtvama da istovremeno sluša ako mu neka žrtva pošalje nešto?
Za server piše da treba riješiti sa pollingom/selectom, a ovdje ne piše niš pa možda se može preko alarma da si olakšamo život


Gussy

Sasha_Triceps jel se to za bot isto odnosi na ovo da ako primi STOP od CandC da se zaustavlja?


Sashat_Triceps

huba buba Da, ako primi od bota STOP zaustavlja slanje


Gussy

I još kako server može imati i tcp i udp na istom portu?


micho

huba buba Može jer su TCP i UDP paketi različiti. Gledaj na to kao na činjenicu da na jednu kućnu adresu mogu dolaziti i pisma i paketi (različite vrste pošiljaka, kao i ovdje različite vrste paketa)


Gussy

M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽ jel bi onda trebalo biti dva procesa koji ce svaki obradivati tcp odnosno udp pakete?


micho

huba buba Mislim da nije potrebno (as in moguće je to raditi jednim procesom), ali isto tako mislim da će ti 2 procesa znatno olakšati upravljanje jer je TCP zajeban.


Gussy

M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽ u biti tcp socket ne može primiti podatak od udp socketa i obrnuto? tj. kada bindam oba socketa na isti port onda ce tcp socket primati tcp pakete a udp socket udp pakete?


angello2

huba buba mislim da da


micho

huba buba Da, bez problema. Imaju različite identifikacijske n-torke, što znači da svakoj toj n-torci možeš pridružiti drukčiji proces.


Cvija

U zadatku piše da se među onih 20 ip adresa može nalaziti i broadcast adresa.
Što mi taj podatak točno predstavlja?

Znači li to da ako pročitam broadcast adresu prilikom slanja payload-ova da onda payload-ove šaljem svima odjednom?


Gussy

Cvija možda samo postaviš adresu slanja na taj broadcast i valjda funkcija zna što dalje treba.


Gussy

ne razumijem uopće kako bi ovaj select/poll kod servera trebao funkcionirati. ima li neki dobar primjer jer iz njihove skripte ništa ne razumijem.


angello2

huba buba ima neki link u onom pdfu predavanja gdje je primjer servera, ja sam po tom select() radio

Meni radi server sa selectom tak da pitaj ak trebas neki specificni dio


Gussy

angello2 znači taj select() se poziva na početku rada servera i onda on vrti petlju i gleda je li dosla konekcija na bilo koji od tih file descriptora? u ovom primjeru od beej to bi bila ova petlja
for(i = 0; i <= fdmax; i++)
i ovaj if gleda ako ima nekih novih podataka
if (FD_ISSET(i, &read_fds))


angello2

huba buba da, i select moras pozvat svaki put iznova (znaci on ti stoji unutar while(1)), onda taj for prolazi sockete i ovaj if(FD_ISSET) gleda dal je taj specificni socket spreman za citanje. jos nesto sta je mene zajebavalo je da moras svaki put nakon sta ti se javi neki socket ih ponovo sve upisat u read_fds, znaci stavi si sve sockete u neku varijablu i onda ih prije svakog selecta prepisi u read_fds inace ce ti petlja primit samo jednu poruku i onda se beskonacno vrtit bez primanja


Gussy

angello2 znaci stavi si sve sockete u neku varijablu i onda ih prije svakog selecta prepisi u read_fds

to pretpostavljam je ovo
read_fds = master;
kako mogu više socketa staviti u taj master? jel to može biti array?

i još nešto, kada uđe u ovaj if (FD_ISSET(i, &read_fds)) onda radim sve one accept, read, send itd. i onda resetam kao što si rekao taj read_fds?


angello2

huba buba to je to da, nista samo roknes FD_SET na master za svaki socket koji ti treba i ta funkcija ti ih dodaje u set (master i read_fds su setovi), ne trebas array radit

Ovo drugo da pretty much, provjeris koji se tocno socket javio sa ifovima, ako je stdin obradis komande, ak je tcp radis njegov accept i recv i ak je udp recvfrom

Ne znam meni je oke ovaj select nije tak strasno


Gussy

bilo bi lakše sto puta da se radi sa procesima i threadovima joj


Sljedeća stranica »