At 13.16 27/10/2005 +0200, you wrote:

>Hello Geppy,
>
>Here is a working client example for this server:

[SNIP]

>---
>Rgds, Wilfried [TeamICS]
>http://www.overbyte.be/eng/overbyte/teamics.html
>http://www.mestdagh.biz

Hi Wilfried,

first of all, thank you for your time and help :)

Things are going better...

Now the server socket receive the data form your client (even if I'm still 
trying to understand what was wrong with my previous one...) but now I 
think I'm doing something wrong while I try to transfer the buffer from 
socket to my record.

In your server1 example, I modified the ReceiveBinComplete method of 
TClient as follows:

procedure TClient.ReceiveBinComplete;
var
   data : TData;
begin
    Log(ltSystem, IntToStr(RcvdCount) + ' bytes received');
    WritePtr := 0;                   // get ready for next receive
    IsRcvBin := False;               // receiving of data is done
    LineMode := True;                // we are going back to command mode
    SendStr('+OK DATA'#13#10);       // tell the transmitter we have all data
    Move(Rcvd^, Data, SizeOf(Data)); // Rcvd is the pointer to the buffer
    Log(ltRx, 'data.name = ' + data.Name);
    Log(ltRx, 'data.ID = ' + IntToStr(data.ID));
end;

but it returns an empty record.
I don't understand why I get the exact length of received data (RcvdCount 
is 15, which is SizeOf(Data)) but Rcvd seems to point to an empty buffer.
Maybe my pointer dereferencing code is wrong?
Or should I need to use another function instead of Move()?

Ciao.

--
Geppy Piloni

-- 
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