Dear Rooters,
I have a problem with the TServerSocket class which is probably a problem of
the system and not of the TServerSocket. I hope, somebody could give me a
hint where to look at ... ?
This is a part of the code which shows the problem:
TServerSocket *fServer;
for(int port = 18888;port<18890;port++) {
fServer = new TServerSocket(port);
cout << "port: " << port << " fServer: " << hex << fServer << dec <<
endl;
cout << "Desc: " << hex << fServer->GetDescriptor() << dec << endl;
if( fServer->IsValid() ) {
printf("Socket listening on port %d\n",port);
break;
}
}
if ( fServer && fServer->IsValid() ) {
// do something nice ...
else {
cerr << "Could not open server socket !" << endl;
throw 1;
}
*** The relevant output of the program:
port: 18888 fServer: 0x86dd970
Desc: 86e7280
port: 18889 fServer: 0x86dd970
Desc: 86e7a60
Could not open server socket !
Abort
*** What I found in /proc/<pid> when single stepping through the program:
mathes@iklx12> ls 10216/fd
0 1 2 3 4 5 6 7
mathes@iklx12> ls 10216/fd
0 1 2 3 4 5 6 7 8
Doing netstat -a --ip -n | grep LISTEN shows the two created sockets.
So why does GetDescriptor() return such a large number (still > 0), why is
IsValid() always kFALSE ? I cannot use this socket during the program as the
descriptor is surely larger than FDSET_SIZE.
The System in use is:
SuSE 7.1, kernel 2.4.0-4GB
with gcc 2.95.2 and ROOT 3.00/06
Many thanks
Hermann-Josef
**************************************************************************
* *
* Dr. Hermann-Josef Mathes *
* KASCADE & AUGER Collaboration *
* Forschungszentrum Karlsruhe Phone: +49 7247 822429 *
* Institut fuer Kernphysik FAX: +49 7247 824075 *
* POB 3640 *
* D-76021 Karlsruhe/Germany Mail: mathes@ik3.fzk.de *
* hjmathes@web.de *
* *
* Feel free to visit my homepage: *
* http://www-ik3.fzk.de/~mathes/Welcome.html *
**************************************************************************
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:10 MET