43 void HandleSocket(TSocket *s);
47 void SpyServ::HandleSocket(TSocket *s)
49 if (s->IsA() == TServerSocket::Class()) {
51 TSocket *sock = ((TServerSocket*)s)->Accept();
54 printf(
"accepted connection from %s\n", sock->GetInetAddress().GetHostName());
58 if (s->Recv(request,
sizeof(request)) <= 0) {
61 printf(
"closed connection from %s\n", s->GetInetAddress().GetHostName());
67 TMessage answer(kMESS_OBJECT);
68 if (!strcmp(request,
"get hpx"))
69 answer.WriteObject(fHpx);
70 else if (!strcmp(request,
"get hpxpy"))
71 answer.WriteObject(fHpxpy);
72 else if (!strcmp(request,
"get hprof"))
73 answer.WriteObject(fHprof);
75 Error(
"SpyServ::HandleSocket",
"unexpected message");
89 fServ =
new TServerSocket(9090, kTRUE);
90 if (!fServ->IsValid())
102 fCanvas =
new TCanvas(
"SpyServ",
"SpyServ",200,10,700,500);
103 fCanvas->SetFillColor(42);
104 fCanvas->GetFrame()->SetFillColor(21);
105 fCanvas->GetFrame()->SetBorderSize(6);
106 fCanvas->GetFrame()->SetBorderMode(-1);
109 fHpx =
new TH1F(
"hpx",
"This is the px distribution",100,-4,4);
110 fHpxpy =
new TH2F(
"hpxpy",
"py vs px",40,-4,4,40,-4,4);
111 fHprof =
new TProfile(
"hprof",
"Profile of pz versus px",100,-4,4,0,20);
114 fHpx->SetFillColor(48);
119 const Int_t kUPDATE = 1000;
120 for (Int_t i = 0; ; i++) {
121 gRandom->Rannor(px,py);
126 if (i && (i%kUPDATE) == 0) {
127 if (i == kUPDATE) fHpx->Draw();
134 if ((s = fMon->Select(20)) != (TSocket*)-1)
136 if (!fCanvas->TestBit(TObject::kNotDeleted))
138 if (gROOT->IsInterrupted())