Hello all,
I have a problem with a a casually blocked UDP bind port: My application uses
UDP port 50050 and initiates the socket this way:
udp::resolver resolver(dFC->myIoService);
int port = 50050;
bool failed;
do{
failed = false;
udp::resolver::query query(udp::v4(), IPAddress, port);
try {
dFC->s = new udp::socket(
dFC->myIoService, udp::endpoint(*resolver.resolve(query)));
} catch (std::exception &e) {
failed = true;
int intPort = this->intConverter(port);
intPort++;
ostringstream conv;
conv << intPort;
port = conv.str();
cout << "new port: " << port << endl;
} while (failed);
So I am basically using bind port 50050 and if it fails I am increasing it by
one until the bind suceeds. In most cases the bind to port 50050 works fine but
casually after a relaunch of the app or a crash the bind port 50050 appears to
be blocked which is why it increases to higher numbers.
Now I wonder how the port can still be taken although the app has terminated
and if there is way to force the app / the OS using port 50050 ? So far I have
seen this on OSX only – on Windows and Linux I haven't noticed it yet.
Thanks in advance for any pointer how to resolve my isse,
best
Alex
--
http://www.carot.de
Email : [email protected]
Tel.: +49 (0)177 5719797
_______________________________________________
Boost-users mailing list
[email protected]
https://lists.boost.org/mailman/listinfo.cgi/boost-users