Šta je novo?

delphi ili winsock api

Cartman

Čuven
Učlanjen(a)
15.12.2001
Poruke
244
Poena
619
Na netu ima brdo programa koji pokazuju transfer (brzinu i kolicinu protoka) podataka koji idu kroz neki od "network interfaces", ali nisam nasao nijedan koji moze da meri protok izmedju mene i neke (nekoliko) zadate (zadatih) ip adresa, pa sam resio da sam napravim takav programcic.
Imam instaliran delphi 6 (u njemu sam vec pravio neke male programcice). Sad mi treba savet: da li to mogu da napravim koristeci samo delphi-jeve komponente ili treba i win-api da koristim.

Vec sam napravio neke probne zezancije (koristeci winsock api) prilicno beskorisne. Dokumentacija koji sam nasao na net-u je,da tako kazem toliko preopsirna, da od silne shume ne vidim drvo :( .

Ono sto sam ja zamslio je da za svaki paket, koji odlazi ili dolazi, mogu da procitam velicinu, source IP, destination IP, port i da onda sa tim informacijama pravim statistiku.

Unapred Hvala !

p.s.
ne obracajte paznju na signature :)
 
Delphijeve komponente su i pravljene oko WinAPIja, odnosno MFC-a. Samo su lepo "uoblicene" u vidu VCL/CLX frameworka.

Sve socket komponente koje ces naci (FastNet, WSocket, Indy, ...) su sagradjene oko istih windowsovih winsock dll-ova, samo se razlikuju po implementaciji/funkcionalnosti. Ukoliko hoces da ides "nize", moraces da ides na WinSock API, a u nekim slucajevima i nize od toga. Dakle, nista te ne sprecava da uzmes tu windows socket klasu iz delphija, nasledis je i prosiris koristeci winapi funkcije da radi ono sta tebi treba.

Iako radis u Delphiju, obavezno da koristis u svemu tome MSDN (dolazi uz Visual Studio) i potrazi windows sockets 2 i LSP. Preduslov je da znas kako izgledaju OSI slojevi ako hoces da uradis ista pametno.
 
Pokusao sam na preskok da citam winsock 2 api, ali ne ide, ovo kako sam ja zamislio da obradjujem paket po paket izgleda da ide na "nize". Dokumentaciju za winsock api sam nasao, ali za indy skoro nista, nasao sam i neke primere ("zezancije" iz mog gornjeg posta).

Voleo bih kada bi mi neko rekao da su delphi-jeve componente sasvim dovoljne, da tako kazem, po funkcionalnost i da ne moram da citam ovaj winsock api.
 
U zavisnosti koji delphi imas, dobices razne setove socket komponenti. One po "internet" paletom su Borlandove, a FastNet i Indy su 3rd party komponente. One prve obezbedjuju samo osnovnu funkcionalnost, dok su ove nesto sire. Indy je popularan zato sto postoji i za linux, te se koristi u Kylixu. Dokumentaciju za Indy mozes naci
ovde.

Ne verujem da ce ti bilo koji paket socket komponenti biti dovoljan, jer ces najverovatnije morati da ides na nivo koji je "ispod" te komunikacije. Socket komponente su uglavnom ogranizovane na principu client-server komponenti radi zadovoljenja nekog protokola (FTP, POP3, itd). Za ovakve stvari kakve si ti hteo da radis, takav koncept ne vazi. E sad, ako hoces da uradis nesto sto niko drugi nije uradio, tesko da ces naci primere u vezi toga i tesko da ces se izvuci bez citanja i pripremanja "podloge". Sakupljanje materijala i tehnickih podataka uvek prethodi dobrom programu - izbegavaj 'stihijsko' pisanje programa (moraces kad-tad da se vracas na pocetak i redizajniras sve).
 
eh ... da ...

Mislio sam da necu morati da se spustam na nivo paketa, vec da cu moci da registrujem (uhvatim) konekciju, vidim host i port, izvucem bytes send-received, al' ne moze tako. A opet, nije isto za udp i tcp. I sto vise citam vidim da treba i sto vise da zapisujem ...
Mozda postanem pravi programator, hocu reci programer :):)

Pozdrav i hvala na savetima
 
Nazad
Vrh Dno