Programování FTP client-server aplikace v C – OS - GNU / Linux – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Programování FTP client-server aplikace v C – OS - GNU / Linux – Fórum – Programujte.comProgramování FTP client-server aplikace v C – OS - GNU / Linux – Fórum – Programujte.com

 

Marek
~ Anonymní uživatel
521 příspěvků
28. 12. 2010   #1
-
0
-

Zdravím.
Chtěl bych se zeptat, zda máte někdo nějakou zkušenost s psaním síťových aplikací v C v linuxu? Dostal jsem zadanou školní práci v podobě napsání FTP server client aplikace pomocí UDP v jazyce C, která bude umět logování uživatelů (přes txt. soubor), základní příkazy jako MD,CD,DIR atd a samozřejmě upload a download na server/z serveru. Jediné co nám k tomu řekli je jak vytvořit UDP socket a to je skoro vše. Potřeboval bych s tim heplnout nebo narazit na někoho kdo to už řešil.
Díky za odpovědi

Nahlásit jako SPAM
IP: 93.91.144.–
liborb
~ Redaktor
+18
Guru
28. 12. 2010   #2
-
0
-

Pokud umíš realizovat příkazy ve verzi jakože bez serveru (přímo v aplikaci), tak rozdíl mezi touto verzí a tvým zadáním je opravdu jen v UDP připojení. Na straně klienta budeš posílat příkazy do soketu a přijímat a vypisovat odpověď. Na straně serveru budeš příkazy ze soketu načítat, vykonávat, odesílat výsledek klientovi do soketu a logovat do souboru. Síťové spojení je tam skoro to nejmenší ...

Nahlásit jako SPAM
IP: 78.80.52.–
Marek
~ Anonymní uživatel
521 příspěvků
28. 12. 2010   #3
-
0
-

To liborb :
No jako mam ted hotoveho klienta a server tak, ze klient posila nejaky znak a server ho posle zpet akorat o 1 hodnotu vyssi. Spis mi jde o to jak mam poslat ,,prikaz´´ z terminálu aby se provedl na druhé straně?

Nahlásit jako SPAM
IP: 93.91.144.–
liborb
~ Redaktor
+18
Guru
29. 12. 2010   #4
-
0
-

Stejně jako posíláš znak, tak pošleš celý příkaz. Místo jednoho bajtu (znaku) prostě pošleš více bajtů (celý řetězec). Na straně serveru je přijmeš a pak stačí rozskok na podmínkách. Nehledej v tom nic složitého.

Nahlásit jako SPAM
IP: 78.80.52.–
Marek
~ Anonymní uživatel
521 příspěvků
29. 12. 2010   #5
-
0
-

To liborb : Myslíš, že když jsem hodim kody svoje již napsané tak mi s tim někdo poradíte jak dál? Jak poslat celý příkaz z terminálu vím, ale nevím jak na straně serveru zpřístupnit nejaký adresář a v něm soubory které budu moci s klientem stahovat :-(

Nahlásit jako SPAM
IP: 93.91.144.–
KIIV
~ Moderátor
+43
God of flame
29. 12. 2010   #6
-
0
-

To Marek : je to to samy jako cist data z klavesnice
pokud zvladnes zpracovat "prikazy" z ni tak zvladnes to samy i tady.. akorat se odpoved nevypise na obrazovku, ale zase zpet do socketu

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Marek
~ Anonymní uživatel
521 příspěvků
29. 12. 2010   #7
-
0
-

Prosím o nějaký odkaz na návod jak zpracovávat ty příkazy programově pokud tedy o nějakém víte :-)
Děkuji

Nahlásit jako SPAM
IP: 93.91.144.–
crAzY^
~ Moderátor
+10
Grafoman
29. 12. 2010   #8
-
0
-

no bud si ty příkazy můžeš interpretovat sám, nebo pokud jde o systémové příkazy tak je můžeš poslat systému fcí system (což nedoporučuji, protože je to nebezpečné):

system("prikazy");

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Marek
~ Anonymní uživatel
521 příspěvků
29. 12. 2010   #9
-
0
-

a nebyl by nejakej prilad interpretace tech prikazu ? jsem v tom fakt lama :-( diky

Nahlásit jako SPAM
IP: 93.91.144.–
KIIV
~ Moderátor
+43
God of flame
29. 12. 2010   #10
-
0
-

no jestli neumis nacist radek ze vstupu (nemusi to byt nutne standartni) a srovnat s nejakym retezcem tak nevim jak bysme ti vubec mohli dokazat jakkoliv pomoci

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Marek
~ Anonymní uživatel
521 příspěvků
29. 12. 2010   #11
-
0
-

To KIIV : no to svedu, posilam socketem spojeny retezce login a heslo se strednikem a na strane serveru porovnavam v souboru, zda je uzivatel registrovany nebo ne...co se tyce programovani v C tak mam ucebnici a neco jsem jiz umel drive takze to by nemel byt problem ... muj problem je to ze nevim jak vykonat ty prikazy...prikadem: klient posle MKDIR Dokumenty a na serveru tu slozku vytvorit v danem adresari a poslat zpet nejaky stav aby to klient videl nebo stahnout soubor pomoci klienta : jak na strane serveru zviditelnim soubory v danem umisteni ? pokud nekdo znate nejaky dobry tutorial nebo tak neco tak si o tom rad prectu, ale nic moc srozumitelneho jsem nenasel ... jeste jednou diky za rady :-)

Nahlásit jako SPAM
IP: 93.91.144.–
liborb
~ Redaktor
+18
Guru
30. 12. 2010   #12
-
0
-

Existuje seznam FTP příkazů (třeba zde http://www.nsftools.com/tips/RawFTP.htm) a každý ten příkaz něco dělá. Tebou zmiňovaný MKDIR (resp. MKD) prostě jen vytvoří adresář v aktuální cestě a dá o výsledku vědět na stranu klienta. Prostě něco ve smyslu:

if (strcmp(szPrikaz, "MKD") == 0) {

if (mkdir(szParameter, S_IRWXU) == 0) success();
else error(errno);
}
, kde success a error posílají klientovi odpovídající typ výsledku. A takových podmínek tak budeš mít přesně tolik, kolik budeš podporovat příkazů. Vylistování obsahu adresáře ... klient pošle na server masku, podle které se bude hledat, nalezené soubory se budou ukládat do nějakého řetězce (bufferu) asi oddělené novým řádkem a jako výsledek se pošle celý buffer (pokud se to vejde to těch asi 1500 znaků nebo kolik je omezení na soketu) atd.

Nahlásit jako SPAM
IP: 78.80.52.–
Marek
~ Anonymní uživatel
521 příspěvků
6. 1. 2011   #13
-
0
-

díky za rady ... nejak se s tim peru prozatim ... prosim o radu jak poslat sítí celou strukturu která obsahuje různé položky abych s ní mohl na straně serveru pracovat ?



struct balik {
int id;
int delka;
char data[1024];
} packet;
//pak ty polozky necim naplnim a poslu
sendto(server_sockfd, (struct *balik)&packet, sizeof(packet), 0 , (struct sock_addr*)&address, len );

//a nic se nestane ...v strace na klientovy se neco deje ale na serveru nic kdyy prijimam nasledovne
recvfrom (server_sockfd, (struct *balik)&packet, sizeof(packet), 0 , (struct sock_addr*)&client_address, &client_len );


poradite mi prosim jak poslat celou strukturu abych s ni mohl pracovat na druhe stane?
diky

Nahlásit jako SPAM
IP: 81.201.60.–
Kubceko
~ Anonymní uživatel
1 příspěvek
18. 3. 2011   #14
-
0
-

Ahoj chtěl bych více vysvětlil ftop clienta potrebuju to kvuli webu a nedari se mi prihlaseni neboli nevim co napsat do prihlasovacich udaju zda se nekde musim regnout nebo tak prosím poraďte

Nahlásit jako SPAM
IP: 90.177.225.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

FTP client — založil karmuj

FTP client — založil krajta

Client-server-client — založil MM

Client/Server — založil silent

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý