> Arno Garrels [TeamICS] wrote:
>Have a look at this demo, if you think it's usefull I can add it to the
>repository.
Oh, I am looking at this and get myself full of questions. Server app is rather
clear, but not the Client, it's quite complex.
1) What's the meainng of SendBinString in Server, it is never used? What for do
you use PutDataInSendBuffer?
2) I see alot of code to implement a data buffer which imho does the same
things that socket buffer do. Isn't it necessary to construct such
sophisticated logic every time when data parsing is needed?
Moreover (maybe I haven't detected) what do you do, if FRcvBuf is going to be
filled? That is,
FRcvBuf: [_] [_] [_] [_] [D] [D] [D]
|
[_] - already parsed data
[D] - data to be parsed
| - current pointer
and there are some more bytes to be received, but buffer is over... I've found
only one Move(), but it's located inside if FReceiveMode = rmLine section, but
no copying is done when mode is binary.
Maybe it would be a good idea to implement this buffer internally in TWSocket?
Just to have a solid way to know how mush data is available now.
3) if FReceiveMode = rmLine then
begin
...
end;
if FReceiveMode <> rmBinary then
Exit;
strange construction, concerning that FReceiveMode could be only rmLine or
rmBinary... maybe if..else ?
4) while (Length(RcvdLine) > 0) and
(RcvdLine[Length(RcvdLine)] in [#13, #10]) do
RcvdLine := Copy(RcvdLine, 1, Length(RcvdLine) - 1);
while (Length(RcvdLine) > 0) and
(RcvdLine[Length(RcvdLine)] in [#13, #10]) do
SetLength(RcvdLine, Length(RcvdLine) - 1); ?
--
Best regards, Anton
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be