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
Fórum › OS - GNU / Linux
Programování FTP client-server aplikace v C
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ší ...
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ě?
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 :-(
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
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
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 :-)
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.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
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Návrh client-server aplikace - umístění serveru online — založil Jan Kokoška
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