# Example of Server-Socket communication

    {
       // Open a server socket looking for connections on a named service or
       // on a specified port.

       //TServerSocket *ss = new TServerSocket("rootserv", kTRUE);
       TServerSocket *ss = new TServerSocket(9090, kTRUE);

       // Accept a connection and return a full-duplex communication socket.
       TSocket *s = ss->Accept();

       // Close the server socket (unless we will use it later to wait for
       // another connection).
       ss->Close();

       // Check some socket options.
       int val;
       s.GetOption(kSendBuffer, &val);
       printf("sendbuffer size: %d\n", val);
       s.GetOption(kRecvBuffer, &val);
       printf("recvbuffer size: %d\n", val);

       // Get the local and remote addresses (informational only).
       TInetAddress adr = s->GetLocalInetAddress();
       adr.Print();
       adr = s->GetInetAddress()
       adr.Print();

       // Start a loop to receive the different messages. Use on if or switch
       // statement to handle each message appropriately.
       int kind;
       char str[256];
       while (1) {
          s->Recv(str, sizeof(str), &kind);
          if (kind == kMESS_CINT) {
             printf("kMESS_CINT: %s\n", str);
             gROOT->ProcessLine(str);
          } else
             printf("%s\n", str);
       }

       // Close the socket.
       s->Close();
    }