harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Zhang" <zhanghuang...@gmail.com>
Subject Re: [classlib] Uncertain behavior of new Socket("0.0.0.0", 1099);
Date Thu, 20 Jul 2006 12:41:54 GMT
On 7/20/06, Mikhail Fursov <mike.fursov@gmail.com> wrote:
>
> The documentation of java.net.Socket says nothing about 0.0.0.0 address,
> but documentation on java.net.DatagramSocket has a reference to it:
> http://java.sun.com/j2se/1.4.2/docs/api/java/net/DatagramSocket.html
> "If the IP address is 0.0.0.0, the socket will be bound to the wildcard
> address, an IP address chosen by the kernel."


Hello Mikhail, they are different. New DatagramSocket("0.0.0.0",port) means
the datagram socket will be bound to "0.0.0.0", but new Socket("0.0.0.0",port)
means new a socket bound with a system free port and then connect to ("
0.0.0.0", port).

I didn't investigate Harmony implementation code, but I guess it's caused by
difference of system call. On windows, 0.0.0.0 is regarded as a "invalid
address", while on Linux, it's valid.
I'll take a deep look at the code later on.

So it's normal to use 0.0.0.0 and we have a bug.


Agree. I think we should follow RI this time.

On 7/20/06, Victor A Martynov <victor.martynov@gmail.com> wrote:
> >
> > Hello Mark,
> >
> > I run the example on MS Windows XP, Harmony classlib+DRLVM dated 11 july
> > 2006.
> >
> > c:\test>c:\Harmony\bin\ij -version
> > Apache Harmony DRLVM HEAD-4807 (2006-05-02), Windows/ia32/msvc 1310,
> debug
> >
> > =====
> > Warm Regards,
> >
> > Victor Martynov,
> > Intel Middleware Product Division
> >
> >
> > On 7/20/06, Mark Hindess <mark.hindess@googlemail.com> wrote:
> > >
> > >
> > > On 20 July 2006 at 15:34, "Victor A Martynov" <
> victor.martynov@gmail.com
> > >
> > > wrote:
> > > >
> > > > Hello,
> > > >
> > > >  I'm having trouble with an application. This problem concerns
> > creating
> > > > java.net.Socket on host "0.0.0.0".
> > >
> > > What platform?  Works for me on Linux (debian testing).
> > >
> > > -Mark.
> > >
> > > > The test below illustrates this problem:
> > > >
> > > >  import java.net.*;
> > > >
> > > >
> > > >
> > > > public class Test {
> > > >
> > > >
> > > >
> > > >             public static void main(String args[]) throws Throwable
> {
> > > >
> > > >                         ServerSocket ss = new ServerSocket(1099);
> > > >
> > > >                         Socket s = new Socket("0.0.0.0", 1099);
> > > >
> > > >             }
> > > >
> > > > }
> > > >
> > > >  The output on RI and on Harmony differs:
> > > >
> > > > c:\test>java Test
> > > >
> > > > c:\test>C:/Harmony/bin/ij Test
> > > >
> > > > java.net.ConnectException: 0.0.0.0/0.0.0.0:1099 - The address is not
> > > > available
> > > >
> > > >         at org.apache.harmony.luni.net.PlainSocketImpl.connect(
> > > > PlainSocketImpl.java:238)
> > > >
> > > >         at org.apache.harmony.luni.net.PlainSocketImpl.connect(
> > > > PlainSocketImpl.java:200)
> > > >
> > > >         at java.net.Socket.startupSocket(Socket.java:715)
> > > >
> > > >         at java.net.Socket.<init>(Socket.java:139)
> > > >
> > > >         at Test.main(Test.java:7)
> > > >
> > > >
> > > >
> > > > I wonder whether it is a bug in RI or a bug in LUNI of Harmony?
> > > >
> > > > =====
> > > > Warm Regards,
> > > >
> > > > Victor Martynov,
> > > > Intel Middleware Product Division
> > > >
> > > > ------=_Part_57416_17500570.1153395298489--
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> > >
> > >
> >
> >
>
>
> --
> Mikhail Fursov
>
>


-- 
Andrew Zhang
China Software Development Lab, IBM

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message