From time to time, my torrent filesharing application will crash or needto be killed. The application is configured to listen on a specific port. If I try to restart the application after improper termination, I receive a fatal error message stating that the port is already in use.
Before restarting the application, I verify that the application did indeed shut down (via 'ps -aux') and 'sockstat -l' shows that no application is using the port in question, so I don't understand how the port could still be 'in use'.
The only way I've found to restart the application after improper termination is to reboot the whole system. Is there something else I could try? Does this kind of thing tend to happen to network applications when they crash or could this be specific to my application?
What little tinkering I've done in the socket world reminds me of this:
-------------------------------------------------------------- % man setsockopt
...
SO_REUSEADDR enables local address reuse SO_REUSEPORT enables duplicate address and port bindings
...
SO_REUSEADDR indicates that the rules used in validating addresses sup- plied in a bind(2) call should allow reuse of local addresses. SO_REUSEPORT allows completely duplicate bindings by multiple processes if they all set SO_REUSEPORT before binding the port. This option per- mits multiple instances of a program to each receive UDP/IP multicast or broadcast datagrams destined for the bound port. --------------------------------------------------------------
Basically, what I remember about this is that if you supply those options when creating the socket and your app crashes, you can start it back up using the same host:port otherwise you get the message you're getting...
I'm sure a good networking would be able to explain it better... _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
