albert drent wrote:
> I am using ICS, the components I use are TWSocketServer and TWSocket. I
> try to send a large string with 
> 
> Display(IntToStr(SendStr(Encrypt(AnswerData.CommaText) + #13#10))+'bytes
> sent'); CloseDelayed;
> 
> The bytecount tells me that all is sent. But on the receive it is cut
> of... 

Yes, because you Close the socket while it is still sending data.
SendStr() returns immediately while the component sends data in
the background. Use event OnDataSent to call either Shutdown(1) 
or CLoseDelay.


---
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html


 
> procedure TDM.CliSocketDataAvailable(Sender: TObject; Error: Word);
> var
>     Len : Integer;   var fn : textfile;
> begin
>     { We use line mode, we will receive a complete line }
>     Len := CliSocket.Receive(@Buffer, SizeOf(Buffer) - 1);
>     assignfile(fn, 'd:\testen.txt');
>     append(fn);
>     writeln(fn, IntToStr(SizeOf(buffer))+' '+IntToStr(Len));
>     closefile(fn);
>    if Len <= 0 then
>         Exit;
> 
>     Buffer[Len]       := #0;              { Nul terminate  }
>     ProcessCommand(StrPas(Buffer));       { Pass as string }
> end;
> 
> The buffersize is 100000 so large enough. It's all based on the sample
> applications, but somehow data is cut-off if it exceeds something like
> 30k.  
> 
> In the source I read that it should be possible to transfer mb's of data
> in a single call, but as the only option I see now is to send it in
> chuncks of ??? size.  
> 
> albert
-- 
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

Reply via email to