On 7/20/06, Mikhail Fursov <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> wrote:
> >
> >
> > On 20 July 2006 at 15:34, "Victor A Martynov" <
[EMAIL PROTECTED]
> >
> > 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: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>


--
Mikhail Fursov




--
Andrew Zhang
China Software Development Lab, IBM

Reply via email to