Sending TClonesArray over network

From: Alexander Zvyagin (zvyagin@mx.ihep.su)
Date: Mon May 18 1998 - 02:59:57 MEST


                                           IHEP, Protvino, Russia, 16-MAY-1998

    Dear friends!

I have problem in sending TClonesArray from server to client program over
network. (I try to write code that is analogus to hserv.C hclient.C)

The part of code that sends data:
---------------------
  TClonesArray events("EVENT",11,kFALSE);
  new(events[0]) EVENT;
  TMessage message(kMESS_OBJECT);
  message.Reset();                    // re-use TMessage object
  message.WriteObject(&events);       // write object in message buffer
  socket_client->Send(message);       // send message
  events.Clear();
----------------------------

The part of code that receives data:
------------------------------
  TMessage *message;
  socket.Recv(message) )
  if( message->What()==kMESS_OBJECT )
  {
    TClonesArray *o = (TClonesArray*) message->ReadObject(message->GetClass());
    delete o;
  }
  delete message;
------------------------------
                                    

The last code crashes at line
TClonesArray *o = (TClonesArray*) message->ReadObject(message->GetClass());

with diagnostic:

Fatal in <operator delete>: unreasonable size (137160120)
aborting
Abort


What am I doing wrong?

Thanks in advance,
Alexander Zvyagin.



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:32 MET