datein über socket senden



  • und zwar bin ich dabei das zu machen ... aber ich sitze schon ewig an dem problem! ich sende zuerst die anzahl wie oft blöcke a 1024 bytes gesendet werden! das empfange ich auch!

    dann läuft auf dem server eine schleife und auf dem client!

    und ich habe mir gedacht, damit sie nicht asynchron laufen, sendet der server und wartet, bis er erneut sendet, auf eine antwort vom client!
    Client Schleife:

    while ( j < anz )
    {
       rc = recv(s,buf,1024,0); 
       buf[rc] = '\0';
       fputs(buf, datei);
       j++;
       send(s, "OK", strlen("OK"), 0);	
    }
    

    Server Schleife:

    while ( j < anz)
    {
       copy1024FB(sendepuffer, datei, &position, size);
       send(connectedSocketF, sendepuffer, ( int )strlen( sendepuffer ), 0);
       j++;
       rcF=recv(connectedSocketF,tmp,3,0);
       tmp[rcF] = '\0';
    }
    

    Mein Problem ist das es anfangs sehr gut läuft doch irgendwann stehen beiden schleifen auf dem recv befehl und gehen nicht weiter weil keiner was empfängt! Habt ihr vlt. eine Idee warum das passiert? vielen dank schonma
    mfg donzero



  • Also ich habe gerade festgestellt das ich textdatein problemlos übertragen kann! also wird es vermutlich an was anderem liegen! Auslesen tue ich die datei mit dem modus "r+b" und schreiben mit "w+b" .. oder sollte ich es anders machen? bin für alles offen! 😃



  • Binärdaten sind nicht nullterminiert, weil auch mittendrin Nullen auftreten können. fputs und strlen arbeiten mit Nullterminierung, sind also für Binärdaten nicht geeignet.



  • na gut dann tausche ich die sachen mal aus ... danke schonmal!



  • danke .. es geht jetzt endlich! 😃


Anmelden zum Antworten