Re: [ROOT]-Send Ojects Via ROOT Sockets

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Thu Jan 25 2001 - 14:56:44 MET


Hi Caius,

   do you use string in ConfigRC? Try using TString instead if possible.
That should work.

Cheers, Fons.


Caius Howcroft wrote:
> 
> 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)

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7677910



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:34 MET