I'm wirting an application for an LPC Controller using Keil/Arm MDK and BSD Sockets.
In the application I close a TCP listen socket and want to reopen it a short time later. I get an Error trying after closing it and trying to bind the newly created Socket: BSD_EADDRINUSE (-17). Seems to indicate that it is in something of a TIME_WAIT state, so I can't reuse that port until the set time passed.
This would be perfectly fine for a connection socket. But for a listen socket, I don't see the point. After closing it no connection would be accepted any more anyway. setsockopt() exists but SO_REUSEADDR is not implemented by the MDK. So how would I try to work around this?
Thanks for any help.
sorry that I didn't notice you were asking BSD socket, instead of native TCP socket.
The error "BSD_EADDRINUSE" happens, when the local socket with a specific port is currently being used, which cannot be reused.
If you read through the example code you referred to above, you will see closing the "parent socket" is not meant for you to reuse the socket bound to the same address and port.