Freekazonid
21-06-2003, 14:41
hallo,
ich lerne grad ein bisserl socket programmierung und schreib ein programm womit man dateien uebers netzwerk auslesen kann(zu übungszwecken)
im prinzip klappt das ganz gut. nur will ich das der client dem server sagt WELCHE datei er angezeigt haben will: also "statisch" klappt das, aber wenns variabel seinen soll gehts net
das problem ist das ich com client in den socket die datei schreibe die ich haben will:
write(sockfd,ga,strlen(ga));
der server wohl an read weiterhin blockiert: ich komm nich drumherun ein \n mitzuschicken:
write(sockfd,"\n",1);
das problem was dabei entsteht, ist das der server zwar nun nicht mehr blockiert ist und den string in recvline hat ( ich gebe ihn immer testweise mit puts aus), aber das problem ist das er ja nun diese datei öffnen soll: und da sagt er immer "konnte datei net finden" also fehler beim fopen: die datei existiert, und ich vermute es liegt an dem newline. denn wenn ich mit puts den string ausgebe kommt da nicht
VON_PUTS_AUSGEGEBENER_STRING
WEITERER KRAM
sonden:
VON_PUTS_AUSGEGEBENER_STRING
WEITERER KRAM
und wg dieser leerzeile (\n) kann fopen die datei net finden, kommt durcheinander.
das ist so meine vermutung. aber ich weiss es nicht hunderprozentig
das war jetz alles was chaotisch den code kann man hier nachgucken
ftp://freax.mine.nu/incoming/cliecho.c // client
ftp://freax.mine.nu/incoming/srvecho.c // server
ftp://freax.mine.nu/incoming/unp.h // die header ( ja das ist die header vom stevens)
wenn ihr was net verstanden habt was mich net verwundern würde fragt nach, würde mich super über jeden ansatz freuen weil ich da echt net weiterkomme :) danke
ich lerne grad ein bisserl socket programmierung und schreib ein programm womit man dateien uebers netzwerk auslesen kann(zu übungszwecken)
im prinzip klappt das ganz gut. nur will ich das der client dem server sagt WELCHE datei er angezeigt haben will: also "statisch" klappt das, aber wenns variabel seinen soll gehts net
das problem ist das ich com client in den socket die datei schreibe die ich haben will:
write(sockfd,ga,strlen(ga));
der server wohl an read weiterhin blockiert: ich komm nich drumherun ein \n mitzuschicken:
write(sockfd,"\n",1);
das problem was dabei entsteht, ist das der server zwar nun nicht mehr blockiert ist und den string in recvline hat ( ich gebe ihn immer testweise mit puts aus), aber das problem ist das er ja nun diese datei öffnen soll: und da sagt er immer "konnte datei net finden" also fehler beim fopen: die datei existiert, und ich vermute es liegt an dem newline. denn wenn ich mit puts den string ausgebe kommt da nicht
VON_PUTS_AUSGEGEBENER_STRING
WEITERER KRAM
sonden:
VON_PUTS_AUSGEGEBENER_STRING
WEITERER KRAM
und wg dieser leerzeile (\n) kann fopen die datei net finden, kommt durcheinander.
das ist so meine vermutung. aber ich weiss es nicht hunderprozentig
das war jetz alles was chaotisch den code kann man hier nachgucken
ftp://freax.mine.nu/incoming/cliecho.c // client
ftp://freax.mine.nu/incoming/srvecho.c // server
ftp://freax.mine.nu/incoming/unp.h // die header ( ja das ist die header vom stevens)
wenn ihr was net verstanden habt was mich net verwundern würde fragt nach, würde mich super über jeden ansatz freuen weil ich da echt net weiterkomme :) danke