Server program which waits for two clients to connect.
It then monitors the sockets and displays the objects it receives. To see how to make a non-blocking server see the script hserv2.C.
void hserv() {
int val;
printf("sendbuffer size: %d\n", val);
printf("recvbuffer size: %d\n", val);
adr =
s1->GetInetAddress();
TPad *pad1 =
new TPad(
"pad1",
"This is pad1",0.02,0.52,0.98,0.98,21);
TPad *pad2 =
new TPad(
"pad2",
"This is pad2",0.02,0.02,0.98,0.48,21);
while (1) {
char str[64];
printf(
"Client %d: %s\n",
s==
s0 ? 0 : 1, str);
printf("No more active clients... stopping\n");
break;
}
else
}
} else {
printf("*** Unexpected message ***\n");
}
delete mess;
}
printf(
"Client 0: bytes recv = %d, bytes sent = %d\n",
s0->GetBytesRecv(),
printf(
"Client 1: bytes recv = %d, bytes sent = %d\n",
s1->GetBytesRecv(),
}
virtual TObject * ReadObject(const TClass *cl)
Read object from I/O buffer.
virtual char * ReadString(char *s, Int_t max)
Read string from I/O buffer.
This class represents an Internet Protocol (IP) address.
void Print(Option_t *option="") const
Print internet address as string.
TClass * GetClass() const
TSocket * Select()
Return pointer to socket for which an event is waiting.
virtual void Add(TSocket *sock, Int_t interest=kRead)
Add socket to the monitor's active list.
Int_t GetActive(Long_t timeout=-1) const
Return number of sockets in the active list.
virtual void Remove(TSocket *sock)
Remove a socket from the monitor.
The most important graphics class in the ROOT system.
virtual void Draw(Option_t *option="")
Draw Pad in Current pad (re-parent pad if necessary).
TVirtualPad * cd(Int_t subpadnumber=0)
Set Current pad.
virtual TSocket * Accept(UChar_t Opt=0)
Accept a connection on a server socket.
virtual void Close(Option_t *opt="")
Close the socket.
static constexpr double s