Yeah, that should work. Feel free to open a JIRA issue for improving this by making our use of SO_REUSEADDR configurable.
/niklas On Fri, Apr 17, 2009 at 12:02 PM, Francis De Brabandere <[email protected]> wrote: > yep we're working on windows XP, thanks for the link > > this is what i'm doing right now... ugly but it works > > /** > * Throws an exception if we can connect to the port > * @throws FtpException > */ > private void checkForOtherServer(final int port) throws FtpException{ > try { > Socket sock = new Socket("localhost", port); > sock.close(); > throw new FtpException("An other server is running on > port "+port); > } catch (UnknownHostException e) { > throw new FtpException(e.getMessage(), e); > } catch (IOException e) { > logger.debug("No other server running."); > } > } > > On Fri, Apr 17, 2009 at 11:48 AM, Niklas Gustavsson > <[email protected]> wrote: >> On Fri, Apr 17, 2009 at 11:37 AM, Francis De Brabandere >> <[email protected]> wrote: >>> I start up a ftp server in my unit tests. But I want to make sure >>> there is only one instance running on a port, starting a second server >>> on the same port should fail (throw an exception). >>> >>> Right now the second server starts up without errors but making a >>> connection to the port used gives me the first server... >> >> I'm guessing this is on WIndows? Windows has a weird (or wrong) >> treatment of SO_REUSEADDR. You can read more about it here: >> http://msdn.microsoft.com/en-us/library/ms740621(VS.85).aspx >> >> This has been discussed here before, but with no good resolution. One >> possibility is that we could make our use of SO_REUSEADDR >> configurable. >> >> /niklas >> > > > > -- > http://www.somatik.be > Microsoft gives you windows, Linux gives you the whole house. >
