PDA

Pogčedajte punu verziju : Transfer fajlova?


orangem
25. 02. 2009., 13:11
Imam jedan program u C-u koji treba da kreira fajlove i rasporedjuje ih po raznim "remote FTP" lokacijama.

Ja sam to sve napravio, ali da radi tako sto fajlove kompresuje i salje koristeci komandnu liniju ( system funkcija ).

Ovo sam uradio kao privremeno rjesenje, dok ne smislim nesto bolje.

Da li neko ima prijedlog kako bi ovo bilo najbolje uraditi iz C-a. Mozda postoji neka biblioteka koja bi mi omogucila ili sl.

Za kompresiju podataka nemam pojma sta bih koristio, a za slanje, planirao sam socket-e. Bojim se da socket-i nisu najbolje rjesenje jer se radi o fajlovima velicine 1 i vise GB.

Kakva su vasa misljenja u vezi toga?

japan
25. 02. 2009., 14:42
Da li neko ima prijedlog kako bi ovo bilo najbolje uraditi iz C-a. Mozda postoji neka biblioteka koja bi mi omogucila ili sl.


mozda cURL (http://curl.haxx.se/lxr/source/docs/examples/ftpupload.c)?

miks
25. 02. 2009., 16:37
Sockete ces u svakom slucaju koristiti. Bilo direktno ili indirektno. Ono sto mislim da tebi predstavlja problem je prekid konekcije prilikom uploada. U svakom slucaju najbolje bi bilo da pogledas vec neka open source gotova resenja.

filmil
03. 03. 2009., 05:58
Za kompresiju podataka nemam pojma sta bih koristio, a za slanje, planirao sam socket-e. Bojim se da socket-i nisu najbolje rjesenje jer se radi o fajlovima velicine 1 i vise GB.

Kakva su vasa misljenja u vezi toga?

Ти имаш два одвојена проблема. Један је компресија података, други је расподела датотека.

Компресија је релативно једноставна; постоје библиотеке за то, за језик по избору. пример: http://www.zlib.net/

За копирање великих датотека, поготово без надзора, вероватно је најпаметније употребити неку од библиотека за бит-торент протокол (http://www.google.com/search?hl=en&ei=QrOsScDiJZWksAOayeXIBA&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=bittorrent+library&spell=1).

Само слање и мрежна комуникација нису толико компликовани, колико је компликовано вођење рачуна о прекинутим преносима, о конзистентности пренесених података и о ефикасној употреби пропусног опсега. Бит-торент о свему томе води рачуна аутоматски, тако да те ослобађа великог дела посла. Постоје библиотеке и клијенти за разне језике, па изабери.

Колико сам видео, бит-торент је најефикаснији мејнстрим начин за умножавање великих датотека; познати су ми и ефикаснији начини, али они нису широко доступни.

ф

miks
03. 03. 2009., 08:25
... познати су ми и ефикаснији начини, али они нису широко доступни.


Mozda bi zeleo da podelis to znanje sa name :1010:

filmil
03. 03. 2009., 10:03
Поента је ова: cURL је добар, бит-торент је бољи, а зависно од тога колики чекић желиш да употребиш, проблем може да се реши и на још бољи и ефикаснији начин. А наоко копирање датотека је једноставна ствар.

ф