Hello David, > So I ignored the zero und -1 returned by the Receive(), and it worked :)
Great ! I'm glad it works for you :) > But the "TempSize" in my code was never changed. it was set as to a > constant value en the constructor. Ok no problem then. But if your buffer has a constant size, then wy not put it on the stack like this: var Buffer: array[0..TempSize] of char; begin // receive in buffer > decrease the GetMem(), Free() as much as possible.. so I think I'll do > it before the first request, and free it after the last request... Yes that's another option. Then you only have 1 time allocation, but see paragraph above. > for reassembling the original stream, what do you think ? "consecutive > Realloc()" (First scenario) or "Array of pointer" (Second scenario)? Difficult to say wahts best because it is depending on what you exacly wants or have to do with it. - if you have to save it to a file then you can: - open the file at first packet - receive in buffer - write buffer direkt to file - close file at last packet -- the most fast is to use the low level routines: FileOpen(), etc... - TFileStream is another option, somewhat slower - if you have to do other things with it then you can - use a TMemoryStream - or a dynamicly allocate buffer that you take care yurself Both of course will reallocate when data grow, however you can for both options set the size at first, then also only 1 memallcoation and no reallocation. - array of pointer seems more difficult. Dont think you will have advantage using it. --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be