Wei Feng Niu wrote:
Hi,

         I have a target to detect whether a port is listening, like the
following:

================================================================

<project name="test" default="test.server">

    <target name="test.server" description="Test server.">

        <echo message="trying to test server at localhost:39001..." />

        <waitfor maxwait="300" maxwaitunit="second" checkevery="5"
timeoutproperty="server.not.started">

            <and>

                <socket server="localhost" port="39001" />

            </and>

        </waitfor>

        <fail message="server did not start!" if="server.not.started" />

        <echo message="server has started successfully." />

    </target>

</project>

=================================================================

Put the codes into a build file and run it, I got the following result:

ant -f t.xml;netstat -an|grep 39001

Buildfile: t.xml

test.server:

     [echo] trying to test server at localhost:39001...

     [echo] server has started successfully.

BUILD SUCCESSFUL

Total time: 59 seconds

tcp        0      0 ::ffff:127.0.0.1:39001      ::ffff:127.0.0.1:39001
TIME_WAIT
Thoug there is no any server on 39001 started, after a while the target
will return with "server has started successfully". It is very strange.
Seems the <socket> task makes a listener on 39001 and detect it. So far
I just found the problem on RedHat Linux. And the time that <socket>
returns are different every time you run the target. Sometimes the
target works as expected and sometimes works as above.

Does anybody know what's the cause? Thanks

1. <socket> tries to open a TCP connection; it gets assigned some random port..I'd be surprised that it got 39001, though it is a high enough value it could happen sometimes. Maybe it depends where the TCP stack starts allocating unallocated ports. Try opening a socket to a remote site, see what gets opened there.

2. run netstat -p to see the process with the port

3. are you sure the port is closed? Sometimes after a previous run the port may still be open.

-steve

2.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to