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.