Yes, Im using TCP. I solved my problem (at least in here) with replacing Move() into CopyMemory()
I'm using LineMode, to receive all data sent. (My data size is 49b in total and no string data in it) Are there any conflicts i may encounter in the approach stated below? (I intend to replace Rcvd variable with a global one to prevent having allocating it in every receive) Thank you for help and kind replies.. procedure TMainForm.WSocket1DataAvailable(Sender: TObject; ErrCode: Word); var Rcvd: PChar; RcvdSize: integer; Data: PStatus; begin if ErrCode <> 0 then exit; GetMem(Rcvd, 128); with (Sender as TWSocket) do try RcvdSize := Receive(Rcvd, 128); if RcvdSize < 0 then exit; case Ord(Rcvd[0]) of // Choose data type 0: begin New(Data); try CopyMemory(Data, @Rcvd[1], SizeOf(TStatus)); ... except Dispose(Data); end; end; 1: begin ... end; end; finally FreeMem(Rcvd); end; end; -- 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