29 ClassImp(TPServerSocket);
50 TPServerSocket::TPServerSocket(Int_t port, Bool_t reuse, Int_t backlog,
51 Int_t tcpwindowsize) :
52 TServerSocket(port, reuse, backlog, tcpwindowsize)
54 fTcpWindowSize = tcpwindowsize;
55 SetName(
"PServerSocket");
77 TPServerSocket::TPServerSocket(
const char *service, Bool_t reuse, Int_t backlog,
78 Int_t tcpwindowsize) :
79 TServerSocket(service, reuse, backlog, tcpwindowsize)
81 fTcpWindowSize = tcpwindowsize;
82 SetName(
"PServerSocket");
96 TSocket *TPServerSocket::Accept(UChar_t Opt)
98 TSocket *setupSocket = 0;
100 TPSocket *newPSocket = 0;
105 setupSocket = TServerSocket::Accept(Opt);
107 if (setupSocket == 0)
return 0;
111 if (setupSocket->Recv(port, size) < 0) {
112 Error(
"Accept",
"error receiving port number and number of sockets");
118 pSockets =
new TSocket*[1];
120 pSockets[0] = setupSocket;
123 newPSocket =
new TPSocket(pSockets, 1);
126 pSockets =
new TSocket*[size];
128 for (
int i = 0; i < size; i++) {
129 pSockets[i] =
new TSocket(setupSocket->GetInetAddress(),
130 port, fTcpWindowSize);
131 R__LOCKGUARD(gROOTMutex);
132 gROOT->GetListOfSockets()->Remove(pSockets[i]);
136 newPSocket =
new TPSocket(pSockets, size);
141 if (setupSocket->IsAuthenticated())
142 newPSocket->SetSecContext(setupSocket->GetSecContext());