anchor.diff:      procedure SendMessageToRoom(aKind: TKMessageKind; aRoom: Integer; aParam: Integer); overload;
       procedure SendMessageToRoom(aKind: TKMessageKind; aRoom: Integer; aStream: TKMemoryStream); overload;
       procedure SendMessageAct(aRecipient: Integer; aKind: TKMessageKind; aStream: TKMemoryStream);
  +    procedure DoSendData(aRecipient: Integer; aData: Pointer; aLength: Cardinal);
       procedure RecieveMessage(aSenderHandle:integer; aData:pointer; aLength:cardinal);
       procedure DataAvailable(aHandle:integer; aData:pointer; aLength:cardinal);
       procedure SaveToStream(aStream: TKMemoryStream);
  
positive.code: procedure TKMNetServer.DataAvailable(aHandle:integer; aData:pointer; aLength:cardinal);
  var PacketSender,PacketRecipient:integer; PacketLength:Cardinal; i,SenderRoom:integer; SenderClient: TKMServerClient;
  begin
    SenderClient := fClientList.GetByHandle(aHandle);
    if SenderClient = nil then
    begin
  
negative.code:   SenderRoom: Integer;
  begin
    Assert(aLength >= 1, 'Unexpectedly short message');
  
    M := TKMemoryStream.Create;
    M.WriteBuffer(aData^, aLength);
  