>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()?
Finally I solved my problem and the solution was obviously the simplest ;)
There was this line in Wilfried's client code I didn't notice:
FillChar(Data, SizeOf(TData), 0);
I was filling my record before executing this line...
That's why I received an empty one.
Thank you guys for your help :)
--
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