bind() -> "Bad file descriptor"
-
Hallo,
also ich Programmiere derzeit einen Server welcher auf HTTP Anfragen lauscht
und wenn da eine eingeht in einem pthread (Linux) einen Socks5-Server startet.Dieser Socks5 Server bekommt dann zufällig einen Port zwischen 10000 und 60000
zugewiesen und versucht dann in einer Schleife solange einen Port zu binden bis
es klappt, ausgehend vom zufällig zugewiesenen (den nutzt er dann dafür connections anzunehmen).Das funktioniert auch alles ganz gut aber früher oder später versagt dieser
bind() Aufruf dann und perror() gibt "Bad file descriptor" zurück, konnte in
Google leider nichts dazu findenGenug Ports müssen eigentlich frei sein, es werden immer nur so 2-5 Socks5
Server gleichzeitig benutzt.An was kann das liegen?
Außerdem hab ich close() (für die Sockets) mal mit
int closesocket(int fh) { int ret = close(fh); if(ret == -1) perror("Closesocket "); return ret; }
ausgetauscht.
Und sobald ich die Meldung bekomme das bind() mit "Bad file descriptor" ended endet auch close() damit?!Wäre nett wenn mir jemand helfen könnte!
mfg
-
"Edit": Um genau zu sein passiert failen von bind() scheinbar immer dann wenn man erst ein paar Socks5 Server erstellt, die auch nutzt und dann wieder auf dem HTTP Port einen neuen Socks5 starten will?!