Das wehleidige und immer gefrate SendBuf/ReceiveBuf



  • Hi Leute ich hab da mal ein problem. Ich versuche von einem Client eine JPG-Datei mittels TClientSocket mit NonBlocking mit dem Befehl SendBuf zu übertragen. Dies scheint auch zu funktionieren da er mir die übertragenen Bytes in einer ShowMessage ausgibt und diese gleich der Dateigröße ist. Das Problem ist hierbei der Server, denn dieser liest selbstverständlich nicht alles aus sondern nur schrittweise, wie bringe ich ihn dazu alles auszulesen denn mein folgende Code hängt sich immer bei de Kommentar "hier" auf, also was kann ich tun?
    Megadanke mal im vorraus

    void __fastcall Tfrmserver::ServerClientRead(TObject *Sender,
          TCustomWinSocket *Socket)
    {
            int length=Socket->ReceiveLength();
    
            BYTE *Buffer=new BYTE[length];
            for(int i=sclength;i>0||i!=-1;i++)
            {
                    i=i-Socket->ReceiveBuf(Buffer,Socket->ReceiveLength());
            }
            delete []Buffer;
    }
    


  • hola

    was ist denn 'sclength' ?

    Meep Meep



  • Die Bedingung "i>0||i!=-1" ist eine "elegante" Umschreibung für "i!=-1" ...
    Besser ist es, "i >= 0" zu schreiben.



  • Ja ich hab des alles schon gemerkt und die Fehler und fragen gefunden die ich gesucht habe, aber trozdem thx


Anmelden zum Antworten