[ROOT]-Send Ojects Via ROOT Sockets

From: Caius Howcroft (howcroft@hep.phy.cam.ac.uk)
Date: Wed Jan 24 2001 - 14:43:00 MET


Hi, 
	I'm having some problems using root to send objects over a
network.
	I have made a TOject called ConfigRC and I am sending it a la the
users guide, the code for the client and server are below.  The class
ConfigRC has a member function GetIP which when called returns the value
of a privite member of the class( string IP). There are no complaints when
I compile
or run.  However when I recieve the object and "GetIP" I find that in the
newly created object the privite variables (in this case "strinf IP;") are
not set.  

The default constructor of ConfigRC is just void.  So my question is, how
do I send an object contents so I can then use the oject again on another
machine?

Any help is much appreciated.

Thanks 
Caius Howcroft 

	SERVER:
  char* FileName="config.dat";
  ConfigRC *FromFile = new ConfigRC( FileName );
  while (1) {
    TServerSocket *ss = new TServerSocket(9090, kTRUE);
    TSocket *sock = ss->Accept();
    cout << "SERVER:The Socket was accepted" << endl;
    TMessage message(kMESS_OBJECT);
    message.WriteObject(FromFile);
    sock->Send( message );;
    ss->Close();
  }


CLIENT:
  TSocket *sock = new TSocket("localhost", 9090);
  string IPname =  "IP_BRP3";
  string IPadd;
  while (1)
  {
      TMessage *message;
      sock->Recv(message);
      ConfigRC *FromFile = (ConfigRC*)message->ReadObject(message->GetClass());
      delete message;
      IPadd = FromFile->GetIP( IPname );
  } 
  sock->Close();
  

______________________
CAIUS HOWCROFT
01223 711 788 UK
07977 473 937 UK(mobile)



This archive was generated by hypermail 2b29 : Fri Jun 08 2001 - 11:50:57 MEST